.bash_profileで長い行を破る方法

.bash_profileで長い行を破る方法

私の.bash_profileには次のような長い行があります:

export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/cuda/lib:$HOME/anaconda2/lib:/usr/local/lib:/usr/lib:/opt/intel/compilers_and_libraries/mac/lib:/opt/intel/mkl/lib:$DYLD_FALLBACK_LIBRARY_PATH

この行を複数行に分割するにはどうすればよいですか?

また、.bash_profileはシェルスクリプトと見なされますか?そうでない場合、具体的にどのカテゴリに属しますか?このことがわかったら、ファイルの一般的な書式設定のガイドラインを見つけることができたでしょう。

ベストアンサー1

DYLD_FALLBACK_LIBRARY_PATH="/opt/intel/mkl/lib:$DYLD_FALLBACK_LIBRARY_PATH"
DYLD_FALLBACK_LIBRARY_PATH="/opt/intel/compilers_and_libraries/mac/lib:$DYLD_FALLBACK_LIBRARY_PATH"
DYLD_FALLBACK_LIBRARY_PATH="/usr/local/lib:/usr/lib:$DYLD_FALLBACK_LIBRARY_PATH"
DYLD_FALLBACK_LIBRARY_PATH="/usr/local/cuda/lib:$HOME/anaconda2/lib:$DYLD_FALLBACK_LIBRARY_PATH"
export DYLD_FALLBACK_LIBRARY_PATH

または配列と文字列の関連付けを使用してください。

paths=(
    /usr/local/cuda/lib
    "$HOME/anaconda2/lib"
    /usr/local/lib
    /usr/lib
    /opt/intel/compilers_and_libraries/mac/lib
    /opt/intel/mkl/lib
    ${DYLD_FALLBACK_LIBRARY_PATH:+"$DYLD_FALLBACK_LIBRARY_PATH"}
)

IFS=:$IFS
export DYLD_FALLBACK_LIBRARY_PATH="${paths[*]}"
IFS=${IFS#?}

配列の最後の項目はDYLD_FALLBACK_LIBRARY_PATH変数値に展開され、設定されていないか空の場合は何も拡張されません。

拡張は、変数の最初の文字で区切られた単一の"${paths[*]}"文字列に関連付けられたパスになり、一時的に設定されます。IFS:

おすすめ記事