我有一个包含以下几行的 bash 脚本:
MY_HOME="@INSTALLED_AT@"
LD_LIBRARY_PATH="@INSTALLED_AT@/lib"
MY_BIN="@INSTALLED_AT@/bin"
export MY_HOME
export LD_LIBRARY_PATH
exec "$MY_BIN/my.bin" ${1+"$@"}
Run Code Online (Sandbox Code Playgroud)
我对@INSTALLED_AT@感到特别困惑。具体有什么作用
MY_HOME="@INSTALLED_AT@"
Run Code Online (Sandbox Code Playgroud)
做?
这可能是一个存根文件。语法@INSTALLED_AT@对bash;没有任何意义。它只是一个字符串作为另一个字符串。
在包/源代码/Makefile 中可能有另一个脚本(可能是一个简单的sed),它将编辑此存根并@INSTALLED_AT@用实际安装路径替换,该路径可以不同或用户可选择。
看:
(0)asus-romano:~% var="@INSTALLED_AT@/bin"
(0)asus-romano:~% echo $var
@INSTALLED_AT@/bin
(0)asus-romano:~% echo $var | sed s+@INSTALLED_AT@+/usr/local+g
/usr/local/bin
Run Code Online (Sandbox Code Playgroud)