丈夫欲遂平生志,一载寒窗一举汤。这篇文章主要讲述Linux中source命令的使用方式相关的知识,希望能为你提供帮助。
source??命令??是一个内置的??shell????命令??,用于从当前shell会话中的文件读取和执行命令。source命令通常用于保留、更改当前shell中的环境变量。简而言之,source一个??脚本??,将会在当前shell中运行execute命令。 |
?source?
?命令可用于:- 刷新当前的shell环境
- 在当前环境使用source执行Shell??脚本??
- 从脚本中导入环境中一个Shell函数
- 从另一个Shell脚本中读取变量
?
?source?
?命令它需要一个文件,如果提供了参数,那么将用作传递脚本的位置参数。source FILENAME [ARGUMENTS]
也可以使用?
?.?
?替代??source?
?命令:. FILENAME [ARGUMENTS]
如何使用source命令
1. 刷新当前的shell环境
可以在当前的shell环境中定义一个别名。为?
?ls -al?
?定义一个别名为??ll?
?:[root@localhost ~]# echo "alias ll=\'ls -al\'" > > ~/.bashrc
在~/.bashrc文件中定义完别名,可以使用source命令刷新当前shell环境:
[root@localhost ~]# source ~/.bashrc
现在可以使用?
?ll?
?别名列出当前目录里所有文件了,包括隐藏文件。文章图片
2. 在当前环境使用source执行Shell脚本
Shell脚本不知道你在当前Shell环境中定义的变量。source命令可用于在当前会话中执行你的Shell脚本。
下面在定义一个变量:
[root@localhost ~]# website=https://www.linuxprobe.com
文章图片
创建一个脚本:
[root@localhost ~]# vim web.sh
#!/bin/bash
echo $website
文章图片
使用?
?source?
?在当前shell会话中执行它:[root@localhost ~]# source web.sh
https://www.linuxprobe.com
文章图片
当使用sh运行脚本时,找不到环境中定义的变量:
文章图片
3. 从脚本中导入环境中一个Shell函数
首先创建一个脚本,定义一个函数:
[root@localhost ~]# vim func.sh
#!/bin/bash
foo(){
echo "test function!"
}
文章图片
要在当前的shell会话中导入上述脚本的功能,使用下面命令:
[root@localhost ~]# source func.sh
下面在终端中执行以下func.sh脚本中的?
?foo?
?函数试试:[root@localhost ~]# foo
test function!
文章图片
source完脚本之后,可以看到在当前回话的终端中可以执行脚本里面的函数。
4. 从另一个Shell脚本中读取变量
首先创建带有一些变量的shell脚本,请输入:
[root@localhost ~]# vim var.sh
#!/bin/bash
a=1
b=2
c=3
文章图片
再创建一个脚本,该脚本读取上一个脚本?
?var.sh?
?中的变量:[root@localhost ~]# vim read.sh
#!/bin/bash
source ~/var.sh
echo $a
echo $b
echo $c
在脚本中首先使用source将?
?var.sh?
?中的变量到处到当前回话,然后echo显示变量值。下面执行??read.sh?
?看一下:文章图片
5. 读取并执行命令
?
?source?
?命令可以从文件读取和执行命令。下面的一个文本文件中带有两个命令,使用source命令运行该文件,看看是否会执行里面的命令。下面创建一个文件cmd.txt,保存两个命令:
[root@localhost ~]# cat cmd.txt
ip ad
date
下面使用?
?source?
?执行这个文件:[root@localhost ~]# source cmd.txt
文章图片
总结
?
?source?
?命令在当前shell中执行脚本,而??exec?
?命令在新的shell中运行。推荐阅读
- STP
- LINUX学习第六天
- GitLab配置ssh key
- SHELL编程入门&变量实战2
- VMware虚拟机克隆后解决网络冲突问题
- 实验室如何选择正确的检测样品()
- 十三zabbix低级自动发现之mysql
- 十四zabbix+grafana
- 在WordPress的Customizr主题中在哪里编辑页脚文本