【Bash百宝箱】shell内建命令之句点与source

编程入门 行业动态 更新时间:2024-10-05 09:25:26

【Bash百宝箱】shell内建命令之<a href=https://www.elefans.com/category/jswz/34/1758386.html style=句点与source"/>

【Bash百宝箱】shell内建命令之句点与source

在shell中,内建(builtin)命令句点“.”和source用法相同,格式如下:

. filename [arguments]
source filename [arguments]

句点命令和source的作用相同,都是从脚本filename中读取命令并执行它们,若指定了参数arguments,参数便成为对应的位置参数。命令执行的退出状态为执行的最后一个命令的退出状态,没有执行任何命令时,退出状态为0,若filename不存在,退出状态为1,需要注意的是,这个脚本的执行是在当前shell环境下完成的,执行结果会影响当前shell,而普通的脚本执行则是在子shell中,执行结果不影响当前shell,下面举例说明两者的区别。
测试脚本test.sh:

#!/bin/bash

var=test

普通用法:

$ var=foo
$ echo $var
foo
$ bash test.sh
$ echo $var
foo

使用source命令执行脚本:

$ var=foo
$ echo $var
foo
$ source test.sh
$ echo $var
test

从上面的例子中可以看出,使用source命令执行脚本的结果确实影响了当前shell,句点命令的效果是一样的,如果在shell脚本中定义了某些函数,这些函数是可以直接在当前shell中使用的。如下例子所示:

$ cat test.sh 
#!/bin/bash

foo()
{echo "function foo called"
}
$ . test.sh 
$ foo
function foo called

在Linux环境中,有时候我们要修改一些配置文件,比如说位于用户主目录下的bash配置文件“.bashrc”,这个文件的修改是在新的shell终端才生效的,这时就可以使用source命令执行这个文件,使之在当前shell立即生效。在许多开源项目中,都可以看到句点命令或source的用法,例如Android源码的编译。

更多推荐

【Bash百宝箱】shell内建命令之句点与source

本文发布于:2024-02-13 10:16:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1758314.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:句点   百宝箱   内建   命令   Bash

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!