LD_LIBRARY_PATH の設定方法をあれこれ考える
概要
シェルスクリプト内で LD_LIBRARY_PATH を設定することを考える.
LD_LIBRARY_PATH が設定されていない状態で,以下の方法で設定すると末尾に ":" がつくため気持ち悪い
// もちろん動作には影響を与えないので,問題はないはずだが...
#!/bin/bash # LD_LIBRARY_PATH は空とする export LD_LIBRARY_PATH=/usr/local/lib64:${LD_LIBRARY_PATH} echo ${LD_LIBRARY_PATH} # /usr/local/lib64: が表示されるはずだが,末尾の : が気になる
:${パラメータ:+<値>} を使う
パラメータが空文字以外に設定されている場合,パラメータに値を代入する
#!/bin/bash LD_LIBRARY_PATH=/usr/local/lib64${LD_LIBRARY_PATH:+;}${LD_LIBRARY_PATH} export LD_LIBRARY_PATH
if でがんばる
if [ -z 文字列 ]; は文字列が空文字の場合に真になる
#!/bin/bash if [ -z ${LD_LIBRARY_PATH} ]; then export LD_LIBRARY_PATH=/usr/local/lib64 else export LD_LIBRARY_PATH=/usr/local/lib64:${LD_LIBRARY_PATH} fi
[余談] : ${パラメータ:=<値>} を使う
パラメータが空の場合もしくは設定されていない場合に,パラメータに値を代入する
ただし,この方法ではパラメータに追加ができないので,LD_LIBRARY_PATH の設定には不向きである
#!/bin/bash : ${LD_LIBRARY_PATH:="/usr/local/lib64"} export LD_LIBRARY_PATH
${パラメータ:-<値>} が上記と同じ動作となる
#!/bin/bash LD_LIBRARY_PATH=${LD_LIBRARY_PATH:-/usr/local/lib64} export LD_LIBRARY_PATH