阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux中source命令的使用方式

87次阅读
没有评论

共计 1567 个字符,预计需要花费 4 分钟才能阅读完成。

导读 source 命令是一个内置的 shell 命令,用于从当前 shell 会话中的文件读取和执行命令。source 命令通常用于保留、更改当前 shell 中的环境变量。简而言之,source 一个脚本,将会在当前 shell 中运行 execute 命令。

source命令可用于:

  • 刷新当前的 shell 环境
  • 在当前环境使用 source 执行 Shell 脚本
  • 从脚本中导入环境中一个 Shell 函数
  • 从另一个 Shell 脚本中读取变量
source 命令的语法

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 别名列出当前目录里所有文件了,包括隐藏文件。
Linux 中 source 命令的使用方式

2. 在当前环境使用 source 执行 Shell 脚本

Shell 脚本不知道你在当前 Shell 环境中定义的变量。source 命令可用于在当前会话中执行你的 Shell 脚本。

下面在定义一个变量:

[root@localhost ~]# website=https://www.linuxprobe.com

Linux 中 source 命令的使用方式
创建一个脚本:

[root@localhost ~]# vim web.sh 

#!/bin/bash
echo $website

Linux 中 source 命令的使用方式
使用 source 在当前 shell 会话中执行它:

[root@localhost ~]# source web.sh 
https://www.linuxprobe.com

Linux 中 source 命令的使用方式
当使用 sh 运行脚本时,找不到环境中定义的变量:
Linux 中 source 命令的使用方式

3. 从脚本中导入环境中一个 Shell 函数

首先创建一个脚本,定义一个函数:

[root@localhost ~]# vim func.sh

#!/bin/bash
foo(){echo "test function!"}

Linux 中 source 命令的使用方式
要在当前的 shell 会话中导入上述脚本的功能,使用下面命令:

[root@localhost ~]# source func.sh

下面在终端中执行以下 func.sh 脚本中的 foo 函数试试:

[root@localhost ~]# foo
test function!

Linux 中 source 命令的使用方式
source 完脚本之后,可以看到在当前回话的终端中可以执行脚本里面的函数。

4. 从另一个 Shell 脚本中读取变量

首先创建带有一些变量的 shell 脚本,请输入:

[root@localhost ~]# vim var.sh

#!/bin/bash
a=1
b=2
c=3

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 命令的使用方式

5. 读取并执行命令

source命令可以从文件读取和执行命令。下面的一个文本文件中带有两个命令,使用 source 命令运行该文件,看看是否会执行里面的命令。

下面创建一个文件 cmd.txt,保存两个命令:

[root@localhost ~]# cat cmd.txt 
ip ad
date

下面使用 source 执行这个文件:

[root@localhost ~]# source cmd.txt

Linux 中 source 命令的使用方式

总结

source命令在当前 shell 中执行脚本,而 exec 命令在新的 shell 中运行。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1567字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中