Linux中source命令的使用方式
source命令是一个内置的shell命令,用于从当前shell会话中的文件读取和执行命令。source命令通常用于保留、更改当前shell中的环境变量。简而言之,source一个脚本,将会在当前shell中运行execute命令。
source命令可用于:
[*]刷新当前的shell环境
[*]在当前环境使用source执行Shell脚本
[*]从脚本中导入环境中一个Shell函数
[*]从另一个Shell脚本中读取变量
source命令的语法
source命令它需要一个文件,如果提供了参数,那么将用作传递脚本的位置参数。source FILENAME 也可以使用.替代source命令:. FILENAME 如何使用source命令
1. 刷新当前的shell环境
可以在当前的shell环境中定义一个别名。为ls -al定义一个别名为ll:# echo "alias ll='ls -al'" >> ~/.bashrc 在~/.bashrc文件中定义完别名,可以使用source命令刷新当前shell环境:# source ~/.bashrc 现在可以使用ll别名列出当前目录里所有文件了,包括隐藏文件。
https://www.linuxprobe.com/wp-content/uploads/2021/03/image1-1.png2. 在当前环境使用source执行Shell脚本
Shell脚本不知道你在当前Shell环境中定义的变量。source命令可用于在当前会话中执行你的Shell脚本。下面在定义一个变量:# website=https://www.linuxprobe.comhttps://www.linuxprobe.com/wp-content/uploads/2021/03/image2-1.png
创建一个脚本:# vim web.sh #!/bin/bashecho $websitehttps://www.linuxprobe.com/wp-content/uploads/2021/03/image3-1.png
使用source在当前shell会话中执行它:# source web.sh https://www.linuxprobe.comhttps://www.linuxprobe.com/wp-content/uploads/2021/03/image4-1.png
当使用sh运行脚本时,找不到环境中定义的变量:
https://www.linuxprobe.com/wp-content/uploads/2021/03/image5.png3. 从脚本中导入环境中一个Shell函数
首先创建一个脚本,定义一个函数:# vim func.sh#!/bin/bashfoo(){echo "test function!"}https://www.linuxprobe.com/wp-content/uploads/2021/03/image6.png
要在当前的shell会话中导入上述脚本的功能,使用下面命令:# source func.sh 下面在终端中执行以下func.sh脚本中的foo函数试试:# footest function!https://www.linuxprobe.com/wp-content/uploads/2021/03/image7.png
source完脚本之后,可以看到在当前回话的终端中可以执行脚本里面的函数。4. 从另一个Shell脚本中读取变量
首先创建带有一些变量的shell脚本,请输入:# vim var.sh#!/bin/basha=1b=2c=3https://www.linuxprobe.com/wp-content/uploads/2021/03/image8.png
再创建一个脚本,该脚本读取上一个脚本var.sh中的变量:# vim read.sh #!/bin/bashsource ~/var.shecho $aecho $becho $c在脚本中首先使用source将var.sh中的变量到处到当前回话,然后echo显示变量值。下面执行read.sh看一下:
https://www.linuxprobe.com/wp-content/uploads/2021/03/image9.png5. 读取并执行命令
source命令可以从文件读取和执行命令。下面的一个文本文件中带有两个命令,使用source命令运行该文件,看看是否会执行里面的命令。下面创建一个文件cmd.txt,保存两个命令:# cat cmd.txt ip addate下面使用source执行这个文件:# source cmd.txt https://www.linuxprobe.com/wp-content/uploads/2021/03/image10.png总结
source命令在当前shell中执行脚本,而exec命令在新的shell中运行。
666
页:
[1]