美文网首页小猿圈-IT自学人的小圈子我用 LinuxLinux
小猿圈学习Linux之shell脚本中cd命令无效的解决方法

小猿圈学习Linux之shell脚本中cd命令无效的解决方法

作者: f673630174f6 | 来源:发表于2019-05-31 14:48 被阅读0次

    对于正在学习linux的你,有没有解决不了的问题呢?特别是有些问题网上也找不到答案,经常要切换到固定的文件夹,于是写了个shell脚本用cd命令切换却发现目录切换不了。下面小猿圈Linux讲师为你讲解shell脚本中cd命令无效的解决方法。

    代码如下:

    #! /bin/bash

    # c.sh

    cd /mnt/hgfs/vmshare

    pwd

    解释:

    执行的时候是./c.sh来执行的,这样执行的话终端会产生一个子shell(类似于C语言调用函数),子shell去执行我的脚本,在子shell中已经切换了目录了,但是子shell一旦执行完,马上退出,子shell中的变量和操作全部都收回。回到终端根本就看不到这个过程的变化。

    验证解释:

    #! /bin/bash

    # c.sh

    history

    cd /mnt/hgfs/vmshare

    sleep1 #延迟1s

    pwd

    首先按照 ./c.sh执行,这时候终端没有切换目录,history执行的结果是空的,说明子shell里面没有历史命令(证明前面的解释是正确的)。

    解决方法:

    source c.sh或者. ./c.sh,这时候就是直接在终端的shell执行脚本了,没有生成子shell,执行的结果就是输出历史命令,并且切换了目录。

    注意上面. ./c.sh .和.中间有个空格!

    以上就是小猿圈linux讲师介绍的shell脚本中cd命令无效的解决方法,希望更多学习linux的同学找到适合自己的学习方式以及学习方法linux自学交流1群:819805410,如果想学习编程语言的话可以到小猿圈上观看视频,里面有最新最全面的视频教程。

    相关文章

      网友评论

        本文标题:小猿圈学习Linux之shell脚本中cd命令无效的解决方法

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