当前位置: 技术问答>linux和unix
shell中case的问题
来源: 互联网 发布时间:2016-01-01
本文导语: #!/bin/bash LIST=" home shell " select i in $LIST ; do case $i in home) cd exit;; shell) ...
#!/bin/bash
LIST="
home
shell
"
select i in $LIST ; do
case $i in
home)
cd
exit;;
shell)
cd /home/joe/shell/
exit;;
*)
echo No directory selected. Stay here.
exit;;
esac
done
为什么选择1或2后无法cd进去?
LIST="
home
shell
"
select i in $LIST ; do
case $i in
home)
cd
exit;;
shell)
cd /home/joe/shell/
exit;;
*)
echo No directory selected. Stay here.
exit;;
esac
done
为什么选择1或2后无法cd进去?
|
实际上是已经cd进去了,你可以echo `pwd`(反撇号)看看
当脚本退出时,环境变量(包括当前路径)会回复到脚本执行之前。
当脚本退出时,环境变量(包括当前路径)会回复到脚本执行之前。
|
并不是回不回到之前,当你执行SH的时候,这个SH并不是在你当前的SHELL进程中执行,而是在一个新建的SHELL进程中执行这个SH,你可以在执行其间看看ps x,是不是多了一个类似-SH的进程,也就是说那个新进程确实CD了,但不是前台这个进程。