博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小猿圈学习Linux之shell脚本中cd命令无效的解决方法
阅读量:6463 次
发布时间:2019-06-23

本文共 738 字,大约阅读时间需要 2 分钟。

对于正在学习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自学交流1群:819805410,如果想学习编程语言的话可以到小猿圈上观看视频,里面有最新最全面的视频教程。

转载于:https://juejin.im/post/5cf0d638e51d4510a732805d

你可能感兴趣的文章
CKEditor的使用-编辑文本
查看>>
HDU------checksum
查看>>
使用树莓派拍摄延时动画,制作GIF图
查看>>
js 效果
查看>>
19.Java5同步集合类的应用
查看>>
<c:forEach varStatus="status">中 varStatus的作用
查看>>
puppet来管理文件和软件包
查看>>
Python基础进阶之路(一)之运算符和输入输出
查看>>
阻塞非阻塞异步同步 io的关系
查看>>
ClickStat业务
查看>>
DMA32映射问题
查看>>
提高效率—编程中的技巧
查看>>
高并发程序设计
查看>>
ExtJs之组件(window)
查看>>
SoapUI中如何传递cookie
查看>>
POJ 1269 Intersecting Lines(判断两直线位置关系)
查看>>
MSSQL数据库跨表和跨数据库查询方法简(转)
查看>>
spring3.0.7中各个jar包的作用总结
查看>>
Windows 10 /win10 上使用GIT慢的问题,或者命令行反应慢的问题
查看>>
梯度下降(Gradient descent)
查看>>