序言
在我们使用shell编撰脚本的时侯,有时会须要切换到其他的目录中。并且,当我们按往常的格式一样在脚本中写入cd后,要切换的目录是存在的,然而当执行脚本,我们会收到报错,缘由是cd的命令在脚本中没有实现。
常见于远程执行目标服务器中的脚本。
下边介绍的就是这个常见问题的缘由及解决方式。
缘由
在shell在执行脚本的时侯,会创建一个子shelllinux培训机构,并在子shell中逐字执行脚本中的指令
子shell会从父shell中继承了环境变量,并且执行后不会改变父shell的环境变量
在子shell中的操作和环境变量不会影响父进程,在执行完shell后又回到了父进程
解决方式【1】最简的方式
只须要source脚本即可。
source命令可以在当前的shell环境下执行脚本linux apache 虚拟主机,不会创建子shell,直接影响父进程。
source命令可直接换成“.”。
source /root/alis.sh
或
. /root/alis.sh
远程执行脚本:
ssh ip "source /root/alias.sh"
补充
实际上,我们在使用一些命令的时侯,假如前提是必须先使用cd切换目录linux执行shell脚本,再执行命令,而该条命令执行不成功,8西安是这个缘由。因而须要用source执行脚本linux执行shell脚本,即可解决这个问题。