linux的source命令,linux命令之Source命令
该source命令在当前Shell环境中从指定为其参数的⽂件中读取并执⾏命令。将函数,变量和配置⽂件加载到Shell脚本中很有⽤。
该source命令在当前Shell环境中从指定为其参数的⽂件中读取并执⾏命令。将函数,变量和配置⽂件加载到Shell脚本中很有⽤。
source是Bash内置的shell,以及Linux和UNIX操作系统中使⽤的其他流⾏shell。外壳之间的⾏为可能略有不同。
Source命令语法
该source命令的语法如下:
source FILENAME [ARGUMENTS]
. FILENAME [ARGUMENTS]
source和.(⼀个句点)是相同的命令。
如果FILENAME不是⽂件的完整路径,该命令将在$PATH 环境变量中指定的⽬录中搜索⽂件。如果在中不到该⽂件,$PATH该命令将在当前⽬录中查该⽂件。
如果ARGUMENTS有给出,它们将成为的位置参数FILENAME。
如果FILENAME存在,则source命令退出代码为0,否则,如果不到该⽂件,它将返回1。
源命令⽰例
在本节中,我们将看⼀些如何使⽤source命令的基本⽰例。
Source sh脚本
如果您的Shell脚本使⽤的是相同的功能,则可以将它们提取到⼀个单独的⽂件中,然后在脚本中获取该⽂件的来源。
在此⽰例中,我们将创建⼀个包含bash函数的⽂件,该函数检查运⾏脚本的⽤户是否为root⽤户,如果不是,则显⽰⼀条消息并退出脚本。
functions.sh
check_root () {
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi
}
现在,在每个仅需由root⽤户运⾏的脚本中,只需简单地获取functions.sh⽂件并调⽤函数即可:
#!/usr/bin/env bash
source functions.sh
check_root
echo "I am root"
如果您以⾮root⽤户⾝份运⾏上述脚本,该脚本将显⽰“此脚本必须以root⽤户⾝份运⾏”并退出。
这种⽅法的优点是您的脚本将更⼩,更易读,可以在需要时重⽤相同的功能⽂件,并且如果需要修改功能,则只能编辑⼀个⽂件。
Bash配置⽂件
使⽤该source命令,您还可以从⽂件中读取变量。必须使⽤Bash语法设置变量VARIABLE=VALUE。让我们创建⼀个测试配置⽂件:
config.shlinux循环执行命令脚本
VAR1="foo"
VAR2="bar"
在您的bash脚本中,使⽤以下source命令读取配置⽂件:
#!/usr/bin/env bash
source config.sh
echo "VAR1 is $VAR1"
echo "VAR2 is $VAR2"
如果运⾏脚本,则输出将如下所⽰:
VAR1 is foo
VAR2 is bar
结论
在本指南中,您学习了如何source在Shell脚本中使⽤内置命令。
如果您有任何疑问或反馈,请随时发表评论。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论