主页 > 知识库 > 基于shell脚本中cd命令无效的解决方法

基于shell脚本中cd命令无效的解决方法

热门标签:Linux服务器 服务外包 AI电销 呼叫中心市场需求 网站排名优化 地方门户网站 铁路电话系统 百度竞价排名

在学习的时候,经常要切换到固定的文件夹,于是写了个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 .和.中间有个空格!

以上这篇基于shell脚本中cd命令无效的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
  • shell脚本中执行时提示“没有那个文件或目录”的解决办法
  • Linux中执行shell脚本的4种方法总结
  • Shell脚本test命令使用总结和实例
  • 执行Shell脚本的4种方法及区别介绍

标签:仙桃 兰州 黄山 崇左 湖南 湘潭 衡水 铜川

巨人网络通讯声明:本文标题《基于shell脚本中cd命令无效的解决方法》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266