为什么在shell脚本中无法使用cd?问题原因及解决方法 |
您所在的位置:网站首页 › 无法执行脚本是什么问题导致的 › 为什么在shell脚本中无法使用cd?问题原因及解决方法 |
前言
在我们使用shell编写脚本的时候,有时会需要切换到其他的目录中。但是,当我们按往常的格式一样在脚本中写入cd后,要切换的目录是存在的,但是当执行脚本,我们会收到报错,原因是cd的命令在脚本中没有实现。 常见于远程执行目标服务器中的脚本。 下面介绍的就是这个常见问题的原因及解决方法。 原因在shell在执行脚本的时候,会创建一个子shell,并在子shell中逐条执行脚本中的指令 子shell会从父shell中继承了环境变量,但是执行后不会改变父shell的环境变量 在子shell中的操作和环境变量不会影响父进程,在执行完shell后又回到了父进程 解决方法 【1】最简的方法只需要source脚本即可。 source 命令可以在当前的shell环境下执行脚本,不会创建子shell ,直接影响父进程。 source命令可直接换成 “.”。 source /root/alis.sh 或 . /root/alis.sh远程执行脚本: ssh ip "source /root/alias.sh" 补充实际上,我们在使用一些命令的时候,如果前提是必须先使用cd切换目录,再执行命令,而该条命令执行不成功,8成都是这个原因。因此需要用source执行脚本,即可解决这个问题。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |