alex_feng 2013-07-17 16:12
浏览 464
已采纳

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条回答 默认 最新

  • 自然点可以嘛 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 尝试一下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?