该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.sh

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脚本中使用内置命令。

如果您有任何疑问或反馈,请随时发表评论。

linux的source命令,linux命令之Source命令相关推荐

  1. 近日学习笔记:df -h和du -sh命令,查看linux版本,vbm管理工具,su命令,ssh服务升级技巧,source命令

    文章目录 df -h和du -sh区别 df -h查看整个系统中文件系统的使用情况 du -sh *查看当前目录下各个文件及目录占用空间大小 查看Linux系统版本的命令: VirtualBox管理工 ...

  2. linux source.命令,linux下source命令详解

    本文收集整理关于linux下source命令详解的相关议题,使用内容导航快速到达. 内容导航: Q1:linux下的source命令 linux下的source命令source 命令是 bash sh ...

  3. linux的source命令,Linux中source命令的用法

    Linux中source命令的用法 Linux系统中,source命令通常用"."来代替,是一个点命令,与一般的命令有所不同,下面小编就给大家介绍下Linux中source命令的用 ...

  4. linux 无source命令,linux source命令

    source命令用法: source FileName 作用:在当前bash环境下读取并执行FileName中的命令. 注:该命令通常用命令"."来替代. 如:source .ba ...

  5. linux history存放位置,Linux中history历史命令使用方法详解

    当你在玩Linux的时候,如果你经常使用命令行来控制你的Linux系统,那么有效地使用命令历史机制将会使效率获得极大提升.事实上,一旦你掌握了我在下面给出的15个有关Linux history历史命令 ...

  6. linux read函数_Linux中shell输入ls命令后会系统会发生什么

    大家都用过Shell执行一些Linux命令 在命令的背后,到底发生了什么呢,让我们来一起探索 Shell执行主流程 1.Printthe info of reminding 打印提示信息 2.Wait ...

  7. Shell、内外部命令——Linux基本命令(2)

    1.Shell Shell是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行. shell也被称为LINUX的命令解释器(commandint ...

  8. linux mv 环境变量,linux环境变量 cp mv 以及文档查看的几个命令

    1.环境变量linux 按字面意思理解,环境能够理解为整个linux系统的环境,而变量则是一个能够变化的量或是一个命令.vim 那么,咱们就能够理解为linux的环境变量,就是针对于linux的整个系 ...

  9. 在linux中的sort命令,linux中sort命令

    功能说明:将文本文件内容加以排序,sort可针对文本文件的内容,以行为单位来排序. 参 数: -b 忽略每行前面开始出的空格字符. -c 检查文件是否已经按照顺序排序. -d 排序时,处理英文字母.数 ...

最新文章

  1. 时空穿越!谷歌利用众包老照片还原儿时3D街景,浏览器即可体验
  2. 妙用 Intellij IDEA 创建临时文件,Git 跟踪不到的那种
  3. nginx 配置文件nginx.conf结构
  4. reactive stream协议详解
  5. XCTF-MISC-新手区-base64stego
  6. Digix联合创始人:在接下来的12个月中 比特币将被称为真正的价值存储
  7. 关于CRM库存初始化的一点小总结
  8. ASE V15.7下载地址
  9. OpenSTA —— 高效的 web 性能测试工具
  10. raid5通常需要几块盘_磁盘阵列是什么东西,为什么需要阵列?
  11. Hadoop中core-site.xml文件不允许有匹配“[xX] [mM] [lL]”的处理指令目标。
  12. Opencv配置环境变量
  13. redis雪崩、击穿、穿透
  14. Android实例开发中按钮(Button)的四种点击方式的实现
  15. 计算机酷睿处理器排行,2018电脑英特尔处理器排名(cpu性能天梯图)
  16. 使用IDEA工具远程调试SpringBoot应用
  17. Mumble安装部署教程
  18. 对话系统中的中文自然语言理解 (NLU) 任务介绍
  19. 拼多多向1688开枪
  20. 调用百度ai接口实现图片文字识别详解

热门文章

  1. 第三课.Linux代码编辑器
  2. 多目标线性规划求解方法及matlab实现
  3. python文本分类评价指标 top1如何计算_使用paddlehub自定义任务,具体是自定义文本分类任务中的评价指标时按照官方文档的方法做了之后报错了,请问应该如何解决?...
  4. 一款强大而实用的图片去水印神器
  5. 发现了阿里云 APP 的一个小 BUG
  6. 零基础入门学习Pyhton(23)字典:当索引不好用时
  7. python使用列表推导式(list comprehension)和itertools生成浮点数列表
  8. R语言自定义多分类混淆矩阵可视化函数(mutlti class confusion matrix)、R语言多分类混淆矩阵可视化
  9. R语言return返回值的形式实战
  10. R语言基于LASSO进行特征筛选(feature selection)