$0和${BASH_SOURCE[0]}就是用于表示当前运行脚本信息的两个变量,但它们之间存在一些差异。在今天的博客中,我们将详细探讨这两个变量的区别,并了解在什么情况下该使用哪一个。 什么是$0? $0是一个特殊变量,在 Bash 或其他Unix shell中被用来引用当前执行的脚本或命令的名字。这个变量的一个常见用途是在脚本中获...
source和.命令成功地执行了测试文件的内容。 设置变量和导入函数 你可以使用source将文件 “导入” 到 shell 环境中,就像你可以在 C 或 C++ 中使用include关键字引用一个库,或者在 Python 中使用import关键字引入一个模块一样。这是source的最常见用法之一,它也是.bashrc中的一个默认包含方式,通过source导入.bash_...
source 命令用于执行一个脚本,但它不像直接执行脚本时,会新建一个子 shell,它是在当前 shell 执行脚本。如下图所示,我并没有用 export 定义 VB,当直接执行 test.sh 脚本时,输出空值,访问不到 VB 变量,但当使用 source 执行 test.sh 时,它成功输出了 VB 的值,并保存了对 VB 的修改。 source 命令的另一...
51CTO博客已为您找到关于bash source环境变量的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及bash source环境变量问答内容。更多bash source环境变量相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。
首先,通过一个测试文件验证 source 的功能。创建一个名为 hello.sh 的脚本,即使非可执行,也能用 source 执行,同时使用点号 . 也能达到相同效果。source 的主要用途之一是导入变量和函数。例如,你可以创建一个函数,如获取 IP 地址,然后将这个函数通过 source 导入到 shell 环境中,以便随时调用。
bash与sh在对于脚本执行来说,效果一致,不继承除了当前shell之外的变量值。在无空格“.”且有执行权限的脚本执行中,效果与bash及sh一致。 source及带空格的“.”执行效果一致,且会继承其他shell的变量。 除了不带空格的“.”之外,其他脚本的执行都不需要给脚本增加执行权限。
在撰写脚本时,可以根据此用法,赋值给变量,例如 path=${BASH_SOURCE[0]} 2. dirname 去除文件名中的非目录部分,仅显示与目录有关的部分 如/home/abc/test.sh 内容如下: #!/bin/bash echo "${BASH_SOURCE[0]}" echo "${BASH_SOURCE}" echo "$(dirname"${BASH_SOURCE[0]}")" ...
因此,您设置的每个变量在新 shell 中都不可用。另一方面,source使用当前的 shell 并且不产生新的 shell 进程。因此,您在文件中所做的任何更改都会影响您当前的 shell。上面,正如您从输出中看到的那样,当您执行./或bash因为它们正在产生新进程时,PID 会发生变化。如上所示,命令的父进程 ID (PPID)bash test.sh...
在常规用途中,source命令常用于加载配置文件、执行脚本或设置环境变量等。配置文件中的变量在执行命令时即可使用。配置文件通常存放于系统特定目录或用户自定义目录中。执行配置文件时,使用source命令加载文件内容,使其中的变量变为当前shell的一部分。执行bash脚本的不同方式,主要体现在对脚本的引用和执行上...
从变量BASH_SOURCE 中去掉最后一个'/'字符及其后的字符 如BASH_SOURCE为 "a/b/c/d"则${BASH_SOURCE%/*} 为"a/b/c"表示从末尾去掉指定的内容