我正在尝试编写一个小脚本,将当前目录更改为我的项目目录:

#!/bin/bash
cd /home/tree/projects/java

我将此文件保存为proj,使用chmod添加了执行权限,并将其复制到/usr/bin。当我呼叫它时:proj,它什么都不做。我做错了什么?


当前回答

我执行了以下操作:

创建名为case的文件

将以下内容粘贴到文件中:

#!/bin/sh

cd /home/"$1"

保存它,然后:

chmod +x case

我还在我的.bashrc中创建了一个别名:

alias disk='cd /home/; . case'

现在,当我键入:

case 12345

实际上,我正在键入:

cd /home/12345

您可以在“case”之后键入任何文件夹:

case 12

case 15

case 17

这就像键入:

cd /home/12

cd /home/15

cd /home/17

分别地

在我的情况下,路径要长得多——这些人用前面的~信息总结了这一点。

其他回答

我必须在tcsh中工作,我知道这不是一个优雅的解决方案,但例如,如果我必须将文件夹更改为一个单词不同的路径,那么整个事情可以在别名中完成

a alias_name 'set a = `pwd`; set b = `echo $a | replace "Trees" "Tests"` ; cd $b'

如果路径总是固定的

a alias_name2 'cd path/you/always/need'

应该工作在上面的行中,设置了新文件夹路径

cd在脚本的shell中完成。当脚本结束时,shell退出,然后您将留在原来的目录中。“源”脚本,不要运行它。而是:

./myscript.sh

do

. ./myscript.sh

(请注意脚本名称前的点和空格。)

我通过使用获得了代码<您的文件名>

./<您的文件名>不起作用,因为它不会更改终端中的目录,只是更改特定于该脚本的目录。

这是我的计划

#!/bin/bash 
echo "Taking you to eclipse's workspace."
cd /Developer/Java/workspace

这是我的终端

nova:~ Kael$ 
nova:~ Kael$ . workspace.sh
Taking you to eclipe's workspace.
nova:workspace Kael$ 

您可以使用运算符&&:

cd myDirectory&&ls

这是一个老问题,但我真的很惊讶,我在这里没有看到这个技巧

您可以使用

export PWD=the/path/you/want

无需创建子外壳或使用别名。

请注意,您有责任确保/path/you/want存在。