我需要设置环境变量,通常我们这样做
source script.sh
但是现在,我在启动过程中将其自动化,默认情况下它看起来像 root 启动,shell 为
sh
。如何在 sh
中获取此脚本? 最佳答案
点命令“.
”等效于 C Shell(和 Bash) source
命令。它由 POSIX 指定(参见 dot
),并由 Bourne 和 Korn shell 支持(以及 zsh
,我相信)。
. somefile
请注意,shell 使用
$PATH
查找文件,但该文件只需可读,而不是可执行文件。正如下面的评论中所指出的,您当然可以为文件指定一个相对或绝对路径名 - 将不会使用
$PATH
搜索任何包含斜杠的名称。所以:. /some/where/somefile
. some/where/somefile
. ./somefile
如果
somefile
存在于三个不同的指定位置(如果您可以将 .
替换为 ls -l
并查看列出的文件),则所有这些都可以用于查找 /some/where/somefile
。全世界学士联合起来!是的,如果当前目录是根目录,那么
./some/where/somefile
和 ../../some/where/somefile
将引用同一个文件 - 具有相同的实际路径 - 即使没有链接,符号或硬链接(hard link),也起作用(0x251812231343141 也是如此)。关于bash - 替换 sh 中的源,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4732200/