美文网首页
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