cd 在 shell 中有效,但在脚本中无效

cd 在 shell 中有效,但在脚本中无效

我经常必须cd$HOME一个特定的长目录路径开始。所以我想我应该在 $HOME 中放置一个 cdscript 以便更快地到达那里。

cd脚本:

#!/bin/sh
directory="/some/big/long directory path/that/I/use/frequently"
cd "$directory"

设置权限: chmod 700 cdscript

./cdscript没有做任何事情。我缺少什么? (是的,路径中的这些空格存在,并且我可以成功复制并粘贴 shell 中的确切单独行,因此路径也存在)。另外,只创建一个到目录的符号链接而不是上面的脚本,然后cd到链接,是不是更Unixey?

答案1

只是在做

./cdscript

行不通的。基本上你分叉了一个新的 shell,在其中你 cd,然后 shell(和新的工作目录)退出。

你需要使用

. ./cdscript

(有一个前导点和一个空格)

第一个点的意思是:./cdscript像我输入的一样运行。如果 则需要第二个点。不在你的PATH变量中。

答案2

您最好在 shell 中为此创建一个别名。例如,在 中.bashrc,您可以输入;

alias cdscript='cd /really/long/file/path/'

答案3

该脚本会更改您当前的工作目录,但退出时会恢复该目录。而不是打字

cdscript 

尝试输入

 . cdscript

运行脚本以获得所需的结果。

相关内容