如果脚本位于 PATH 中,如何设置可执行文件的路径

如果脚本位于 PATH 中,如何设置可执行文件的路径

假设我有一个my.sh放置在其中的脚本/var/www,并将该目录添加到PATH环境变量中。现在我可以./my.sh在系统中的任何地方运行。在脚本内部,$0等于/var/www/my.sh。它是如何构建的?它只是PATH加上脚本名称中的路径吗?

答案1

$0是正在运行的进程的名称。

./script.sh因此,当您使用将要运行的进程调用脚本时/bin/bash ./script.sh,它将$0返回./script.sh,因此这里它使用相对路径而不是绝对路径调用脚本,但是,当您将脚本放入PATH查看内部的目录中时,调用将be 带有绝对路径,而 will 的返回$0/usr/bin/script.sh因为该过程是/bin/bash /usr/bin/script.sh

答案2

$0不关心你的$PATH,它是 Bash 的一个特殊参数。

$0 扩展为 shell 或 shell 脚本的名称。这是在 shell 初始化时设置的。如果使用命令文件调用 bash,则 $0 将设置为该文件的名称。常用于显示脚本使用信息

阅读更多关于$0 这里

答案3

跑步:

PATH=`/var/www/my.sh`
echo $PATH

当你运行脚本时,结果将是

/var/www/my.sh

相关内容