尝试使用此处找到的答案:
How to run 'cd' in shell script and stay there after script finishes?
当我添加'source'命令时,无论我是执行'source'还是使用在cshrc中编码的别名调用脚本,目录在脚本运行后仍然保持不变。
非常感谢任何帮助!
答案 0 :(得分:1)
如下所示,请确保您对cd
的呼叫不在子shell中执行。如果是,这将无效source
。
cd
的脚本#!/bin/bash
( cd /etc ) # thie exec's in a subshell
$ pwd
/home/siegex
$ source ./cdafterend.sh && pwd
/home/siegex
cd
#!/bin/bash
cd /etc # no subshell here
答案 1 :(得分:0)
必须从此脚本中的cd命令中删除“/ bin /”,以使命令按预期工作。删除此操作将删除此脚本的子shell问题。此外,在此上下文中,ls命令中的“$ 1”编码无效。