Bash 设置时如何在shell中智能追加LD_LIBRARY_路径

Bash 设置时如何在shell中智能追加LD_LIBRARY_路径,bash,shell,Bash,Shell,在下面的shell中,如果未设置LD\u LIBRARY\u路径,则错误显示LD\u LIBRARY\u PATH:unbound variable 我可以使用类似的用法${xxx:-yyy}来简化它吗 #!/bin/bash set -o nounset export LD_LIBRARY_PATH=/mypath:$LD_LIBRARY_PATH 您可以使用以下构造: export LD_LIBRARY_PATH=/mypath${LD_LIBRARY_PATH:+:$LD_LIBRARY

在下面的shell中,如果未设置LD\u LIBRARY\u路径,则错误显示LD\u LIBRARY\u PATH:unbound variable

我可以使用类似的用法${xxx:-yyy}来简化它吗

#!/bin/bash
set -o nounset
export LD_LIBRARY_PATH=/mypath:$LD_LIBRARY_PATH

您可以使用以下构造:

export LD_LIBRARY_PATH=/mypath${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
说明:

  • 如果未设置
    LD\u LIBRARY\u PATH
    ,则
    ${LD\u LIBRARY\u PATH:+:$LD\u LIBRARY\u PATH}
    在不计算
    $LD\u LIBRARY\u PATH
    的情况下展开为零,因此结果相当于
    导出LD\u LIBRARY\u PATH=/mypath
    ,并且不会引发错误

  • 如果已经设置了
    LD\u LIBRARY\u PATH
    ,则
    ${LD\u LIBRARY\u PATH:+:$LD\u LIBRARY\u PATH}
    扩展为
    :$LD\u LIBRARY\u PATH
    ,因此结果相当于
    导出LD\u LIBRARY\u PATH=/mypath:$LD\u LIBRARY\u PATH

有关这些扩展的更多信息,请参阅

当前目录添加到
$PATH
$LD\u LIBRARY\u PATH
时,两个相邻冒号或尾随/前导冒号计数是一种重要的安全做法。另见: