<分区>
Possible Duplicate:
Why doesn’t “cd” work in a bash shell script?
为什么反引号或 $(..) 中的 cd 命令永远不会更改到新目录。知道如何在单个命令中执行此操作,即捕获任何错误并更改目录。
[root@linux ~]# pwd
/root
[root@linux ~]# cmdMsg=`cd /tmp 2>&1`
[root@linux ~]# pwd
/root
<分区>
Possible Duplicate:
Why doesn’t “cd” work in a bash shell script?
为什么反引号或 $(..) 中的 cd 命令永远不会更改到新目录。知道如何在单个命令中执行此操作,即捕获任何错误并更改目录。
[root@linux ~]# pwd
/root
[root@linux ~]# cmdMsg=`cd /tmp 2>&1`
[root@linux ~]# pwd
/root
最佳答案
因为反引号会产生一个单独的进程并单独运行。所以它在该进程中执行 cd 但不会更改当前进程的工作目录。
如果你只需要查看命令是否成功并且你想更改目录,你可以检查它的退出代码:
cd /tmp
retval = $?
if [ $retval -gt 0 ]; then
echo "cd failed"
fi
关于linux - 为什么反引号中的 cd 永远不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13033910/