0

私のbashスクリプトでは、スペースを含む可能性のあるファイルパスを定期的に使用しています。

FOO=/path\ with\ spaces/

後で、を使用する場合はFOO、引用符( )で囲む必要があります。そうしないと、リスト( 、、"$FOO")として解釈されます。変数がリストとして解釈されないようにするためのより良い方法はありますか?常にクォートラップしなければならないのは面倒です。/pathwithspaces/

4

2 に答える 2

4

いいえ。常に引用符を使用する必要があります。そうしないと、bashは単語を分割します(ただし[[、これは特殊なケースです)。

于 2012-09-26T16:58:00.740 に答える
2

次のように、内部フィールドセパレータIFSを変更することもできます。

ORIGIFS="$IFS"
IFS=$(echo -en "\n\b")
# do stuff...
IFS="$ORIGIFS"

ただし、これは、bashがフィールド分割を実行するように見えるすべての状況に影響します。フィールド分割は、希望よりも広い場合があります。

于 2012-09-26T22:34:51.430 に答える