美文网首页
shell脚本无法执行cd命令

shell脚本无法执行cd命令

作者: H_Man | 来源:发表于2019-06-27 21:13 被阅读0次

在编写shell脚本时遇到cd命令无法执行

原脚本log.sh

if [[ $dbname = "logs" ]]
then
        echo "是别的是logs";
         cd /home/logs/;

执行sh log.sh 之后发现并没有进入/home/logs,还是在原文件夹,搜索之后改为
source log.sh解决问题

错误原因:

  • 1.在shell在执行脚本的时候,会创建一个子shell,并在子shell中逐条执行脚本中的指令

  • 2.子shell会从父shell中继承了环境变量,但是执行后不会改变父shell的环境变量

  • 3.在子shell中的操作和环境变量不会影响父进程,在执行完shell后又回到了父进程

解决原因:

  • source 命令可以在当前的shell环境下执行脚本,不会创建子shell ,直接影响父进程。source命令可直接换成 “.”

相关文章

网友评论

      本文标题:shell脚本无法执行cd命令

      本文链接:https://www.haomeiwen.com/subject/tbudcctx.html