在linux环境下,常有通过shell脚本进入指定目录的操作,例如有一段脚本 text.sh

#!/bin/sh  
cd ~/learn
pwd
ls -l

在shell环境下通过./text.sh执行这段脚本是无法进入learn目录的; 这是因为shell在执行脚本时,会创建一个子shell,并在子shell中逐个执行脚本中的指令; 而子shell中从父shell中继承了环境变量,但是执行后不会改变父shell的环境变量;如果想要代码中切换目录的操作生效,只需要通过source 命令执行即可:

source ./text.sh  

source 命令是在当前的shell环境下执行脚本 ,不会创建子shell;
每次都要输入source是一件烦琐的事情,其实source命令又叫点命令,在需要用到source的情况下,直接换成’.'即可:

. ./text.sh

注意两点之间有一个空格

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐