私のbash
スクリプトでは、スペースを含む可能性のあるファイルパスを定期的に使用しています。
FOO=/path\ with\ spaces/
後で、を使用する場合はFOO
、引用符( )で囲む必要があります。そうしないと、リスト( 、、"$FOO"
)として解釈されます。変数がリストとして解釈されないようにするためのより良い方法はありますか?常にクォートラップしなければならないのは面倒です。/path
with
spaces/
私のbash
スクリプトでは、スペースを含む可能性のあるファイルパスを定期的に使用しています。
FOO=/path\ with\ spaces/
後で、を使用する場合はFOO
、引用符( )で囲む必要があります。そうしないと、リスト( 、、"$FOO"
)として解釈されます。変数がリストとして解釈されないようにするためのより良い方法はありますか?常にクォートラップしなければならないのは面倒です。/path
with
spaces/
いいえ。常に引用符を使用する必要があります。そうしないと、bashは単語を分割します(ただし[[
、これは特殊なケースです)。
次のように、内部フィールドセパレータIFSを変更することもできます。
ORIGIFS="$IFS"
IFS=$(echo -en "\n\b")
# do stuff...
IFS="$ORIGIFS"
ただし、これは、bashがフィールド分割を実行するように見えるすべての状況に影響します。フィールド分割は、希望よりも広い場合があります。