shell 编程 /****** 不定期更新 **************/
1、 shell 编程跳转目录使用 cd 时无效
例如 : 脚本 cd.sh
#!/bin/sh
cd /etc
解决办法和出错原因
这是因为你的脚本是由shell终端fork产生的子shell执行的,所以脚本执行完毕子shell也结束,因而返回父shell也就是当前的终端
可使用
# source cd.sh 或者
# . . /cd.sh 注意这里的格式为 #点/空格/点/cd.sh
也就是说我们所建立的 。sh 程序本身是Linux shell 创建的一个子进程。在使用cd 跳转时,实际是已经执行了跳转指令了,但在
这个 .sh 脚本结束的时候,父进程 终端shell 就拿到了主动权,它又将目录转回为原来的目录,执行下面的脚本,有助于你理解这个问题
#! /bin/sh
cd /etc
mypath='pwd'
echo "$mypath"
执行后,会打印信息可以帮你理解上面的问题。