shell中无法使用cd命令的原因及解决方法

2023-12-05 0 670
目录
  • 前言
  • 原因
  • 解决方法
    • 【1】最简的方法
    • 【2】补充

前言

在我们使用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\”

【2】补充

实际上,我们在使用一些命令的时候,如果前提是必须先使用cd切换目录,再执行命令,而该条命令执行不成功,8成都是这个原因。因此需要用source执行脚本,即可解决这个问题。

到此这篇关于shell中无法使用cd命令的原因及解决方法的文章就介绍到这了,更多相关shell中无法使用cd命令内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!

您可能感兴趣的文章:

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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 linux shell shell中无法使用cd命令的原因及解决方法 https://www.u-9.cn/jiaoben/linuxshell/101436.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务