fengjianchao_vip
2013-07-17 16:12 阅读 353
已采纳

shell脚本 中 cd不切换目录的问题

小弟碰到这么一个问题 先上一段脚本:
echo 'this is run ....'
path1="/home/fengjc"
cd $path1
pwd
echo 'done..'

服务器会爆出:
this is run ....
: No such file or directory
: command not found
done..

为啥不能切换到我指定的目录 (目录是有的)求大神们协助啊...解决后 立即给分啊

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    aubdiy AUB 2013-07-18 10:13

    你是用什么执行的脚本,假设脚本名为t.sh
    1.
    sh t.sh 这样执行的脚本,t.sh可以没有执行权限,当前shell环境会启动一个子进程来执行此脚本,执行后返回到父进程的shell环境,在子进程中会进入到CD的目录,但是在父进程中环境并没有改变,也就是目录没有改变。

    2.
    ./t.sh 这样执行的脚本与1类似,只不过t.sh要有可执行权限

    3.
    source t.sh 这样执行的脚本,t.sh可以没有执行权限,会在当前的shell环境下逐行读取脚本命令内容并执行,执行后就会跳转到CD的目录了

    4.
    . t.sh 这样执行的脚本与3一直

    至于你运行脚本报的错误 确实是找不到文件或目录
    你可以在命令行 直接cd /home/fengjc 尝试一下

    点赞 评论 复制链接分享
  • huangzuduanh huangzuduanh 2013-07-18 11:52

    不是没有切,是已经切了,只是你用pwd命令,它是不会跟着在子程序中而改变的,pwd是指当前的目录,不会管你程序操作(cd)的目录

    点赞 评论 复制链接分享

相关推荐