cd
在 bash 脚本中使用它时我不能再使用了
[~/Downloads] # cat cd-backward
#!/bin/bash
cd ..
[~/Downloads] # ./cd-backward
[~/Downloads] #
Run Code Online (Sandbox Code Playgroud)
我应该移到~
最后一行。
cd
奇怪地在终端中完美运行。bash -c 'cd Download
例如,当我跑步时也没有任何反应。
每个脚本都在自己的subshell
. 中执行,这是一个单独的进程,无法修改其父工作目录。使用写入文件的脚本更改工作目录的唯一方法是使用.
or source
(它们是等效的)获取它,如下所示:
$ . cd-backward
Run Code Online (Sandbox Code Playgroud)
或者
$ source cd-backward
Run Code Online (Sandbox Code Playgroud)
请注意,在这种情况下,您甚至不需要shebang
( #!/bin/bash
) 在脚本的顶部。