开发者社区> 问答> 正文

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..

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

展开
收起
长安归故里. 2020-01-31 13:51:32 2281 0
2 条回答
写回答
取消 提交回答
  • 很简单的问题,$path1没有得到

    2020-02-24 17:41:55
    赞同 展开评论 打赏
  • 你是用什么执行的脚本,假设脚本名为t.sh 1. sh t.sh 这样执行的脚本,t.sh可以没有执行权限,当前shell环境会启动一个子进程来执行此脚本,执行后返回到父进程的shell环境,在子进程中会进入到CD的目录,但是在父进程中环境并没有改变,也就是目录没有改变。

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

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

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

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

    2020-01-31 13:51:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Shell 脚本速查手册 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载