在linux环境下,常有通过shell脚本进入指定目录的操作,例如有一段脚本chdir.sh:
source 命令是在当前的shell环境下执行脚本 ,不会创建子shell;
#!/bin/sh
cd /home/user/Downloads
pwd
在shell环境下通过./chdir.sh执行这段脚本是无法进入Downloads目录的; 这是因为shell在执行脚本时,会创建一个子shell,并在子shell中逐个执行脚本中的指令; 而子shell中从父shell中继承了环境变量,但是执行后不会改变父shell的环境变量;如果想要代码中切换目录的操作生效,只需要通过source 命令执行即可:
source ./chdir.sh source 命令是在当前的shell环境下执行脚本 ,不会创建子shell;
每次都要输入source是一件烦琐的事情,其实source命令又叫点命令,在需要用到source的情况下,直接换成'.'即可:
. ./chdir.sh
注意两点之间的空格。
本文介绍在Linux环境中如何使用Shell脚本进行目录切换。通常情况下,直接运行包含cd命令的脚本不会改变当前工作目录,因为这些操作发生在子shell中。为了解决这一问题,可以使用source命令或点命令(.)来执行脚本,这样可以在当前shell环境中实现目录的切换。
880

被折叠的 条评论
为什么被折叠?



