基于shell脚本中cd命令无效的解决方法
在学习的时候,经常要切换到固定的文件夹,于是写了个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脚本学习指南[二](Arnold Robbins & Nelson H.F. Beebe著)
这篇文章主要介绍了shell脚本学习指南[二](Arnold Robbins & Nelson H.F. Beebe著),需要的朋友可以参考下2014-02-02
Linux shell 之 提取文件名和目录名的一些方法总结
本篇文章主要介绍了Linux shell 之 提取文件名和目录名的一些方法总结,具有一定的参考价值,有兴趣的可以了解一下。2017-01-01
linux下安装oracle后使用命令行启动的方法 linux启动oracle
这篇文章主要介绍了在linux下安装oracle后使用命令启动oracle的方法,大家参考使用吧2014-01-01
shell脚本配合zabbix实现tomcat的故障自愈功能
这篇文章主要介绍了shell脚本配合zabbix实现tomcat的故障自愈,服务实现自愈的方式有通过shell脚本+定时任务的方式,蓝鲸Pass故障自愈平台,shell脚本+zabbix触发器动作,本文给大家详细介绍,需要的朋友可以参考下2022-03-03


最新评论