source命令是一个内置的shell命令,用于从以后shell会话中的文件读取和执行命令。source命令通常用于保留、更改以后shell中的环境变量。简而言之,source一个脚本,将会在以后shell中运行execute命令。
source命令可用于:
刷新以后的shell环境
在以后环境应用source执行Shell脚本
从脚本中导入环境中一个Shell函数
从另一个Shell脚本中读取变量
source命令的语法
source命令它须要一个文件,如果提供了参数,那么将用作传递脚本的地位参数。
source FILENAME [ARGUMENTS]
也能够应用.代替source命令:
. FILENAME [ARGUMENTS]
如何应用source命令
- 刷新以后的shell环境
能够在以后的shell环境中定义一个别名。为ls -al定义一个别名为ll:
[root@localhost ~]# echo "alias ll='ls -al'" >> ~/.bashrc
在~/.bashrc文件中定义完别名,能够应用source命令刷新以后shell环境:
[root@localhost ~]# source ~/.bashrc
当初能够应用ll别名列出当前目录里所有文件了,包含暗藏文件。
Linux中source命令的应用形式Linux中source命令的应用形式
- 在以后环境应用source执行Shell脚本
Shell脚本不晓得你在以后Shell环境中定义的变量。source命令可用于在以后会话中执行你的Shell脚本。
上面在定义一个变量:
[root@localhost ~]# website=https://www.linuxprobe.com
Linux中source命令的应用形式Linux中source命令的应用形式
创立一个脚本:
[root@localhost ~]# vim web.sh
!/bin/bash
echo $website
Linux中source命令的应用形式Linux中source命令的应用形式
应用source在以后shell会话中执行它:
[root@localhost ~]# source web.sh
https://www.linuxprobe.com
Linux中source命令的应用形式Linux中source命令的应用形式
当应用sh运行脚本时,找不到环境中定义的变量:
Linux中source命令的应用形式Linux中source命令的应用形式
- 从脚本中导入环境中一个Shell函数
首先创立一个脚本,定义一个函数:
[root@localhost ~]# vim func.sh
!/bin/bash
foo(){
echo "test function!"
}
Linux中source命令的应用形式Linux中source命令的应用形式
要在以后的shell会话中导入上述脚本的性能,应用上面命令:
[root@localhost ~]# source func.sh
上面在终端中执行以下func.sh脚本中的foo函数试试:
[root@localhost ~]# foo
test function!
Linux中source命令的应用形式Linux中source命令的应用形式
source完脚本之后,能够看到在以后回话的终端中能够执行脚本外面的函数。
- 从另一个Shell脚本中读取变量
首先创立带有一些变量的shell脚本,请输出:
[root@localhost ~]# vim var.sh
!/bin/bash
a=1
b=2
c=3
Linux中source命令的应用形式Linux中source命令的应用形式
再创立一个脚本,该脚本读取上一个脚本var.sh中的变量:
[root@localhost ~]# vim read.sh
!/bin/bash
source ~/var.sh
echo $a
echo $b
echo $c
在脚本中首先应用source将var.sh中的变量到处到以后回话,而后echo显示变量值。上面执行read.sh看一下:
Linux中source命令的应用形式Linux中source命令的应用形式
- 读取并执行命令
source命令能够从文件读取和执行命令。上面的一个文本文件中带有两个命令,应用source命令运行该文件,看看是否会执行外面的命令。
上面创立一个文件cmd.txt,保留两个命令:
[root@localhost ~]# cat cmd.txt
ip ad
date
上面应用source执行这个文件:
[root@localhost ~]# source cmd.txt
Linux中source命令的应用形式Linux中source命令的应用形式
总结
source命令在以后shell中执行脚本,而exec命令在新的shell中运行。