我正在尝试编写一个小脚本,将当前目录更改为我的项目目录:
#!/bin/bash
cd /home/tree/projects/java
我将此文件保存为proj,使用chmod添加了执行权限,并将其复制到/usr/bin。当我呼叫它时:proj,它什么都不做。我做错了什么?
我正在尝试编写一个小脚本,将当前目录更改为我的项目目录:
#!/bin/bash
cd /home/tree/projects/java
我将此文件保存为proj,使用chmod添加了执行权限,并将其复制到/usr/bin。当我呼叫它时:proj,它什么都不做。我做错了什么?
当前回答
我必须在tcsh中工作,我知道这不是一个优雅的解决方案,但例如,如果我必须将文件夹更改为一个单词不同的路径,那么整个事情可以在别名中完成
a alias_name 'set a = `pwd`; set b = `echo $a | replace "Trees" "Tests"` ; cd $b'
如果路径总是固定的
a alias_name2 'cd path/you/always/need'
应该工作在上面的行中,设置了新文件夹路径
其他回答
要快速导航目录,有$CDPATH、cdargs和自动生成别名的方法
http://jackndempsey.blogspot.com/2008/07/cdargs.html
http://muness.blogspot.com/2008/06/lazy-bash-cd-aliaes.html
https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5827311.html
要制作一个bash脚本,该脚本将cd到select目录:
创建脚本文件
#!/bin/sh # file : /scripts/cdjava # cd /home/askgelal/projects/java
然后在启动文件中创建别名。
#!/bin/sh # file /scripts/mastercode.sh # alias cdjava='. /scripts/cdjava'
我创建了一个启动文件,在其中转储所有别名和自定义函数。然后我将这个文件源到我的.bashrc中,以便在每次启动时设置它。
例如,创建主别名/函数文件:/scripts/mastercode.sh(将别名放在此文件中。)
然后在.bashrc文件的末尾:
source /scripts/mastercode.sh
现在很容易cd到java目录,只需键入cdjava就可以了。
它只更改脚本本身的目录,而当前目录保持不变。
您可能希望改用符号链接。它允许您创建文件或目录的“快捷方式”,因此您只需键入cd my project之类的内容。
cd在脚本的shell中完成。当脚本结束时,shell退出,然后您将留在原来的目录中。“源”脚本,不要运行它。而是:
./myscript.sh
do
. ./myscript.sh
(请注意脚本名称前的点和空格。)
这是一个老问题,但我真的很惊讶,我在这里没有看到这个技巧
您可以使用
export PWD=the/path/you/want
无需创建子外壳或使用别名。
请注意,您有责任确保/path/you/want存在。