1

次のようなスクリプトがあります。

file="results/semester1 (2013).csv"
if [ -f "$file" ]; then
  echo 'File exists.'

  # do more stuff with $file
fi

issue 、、など$fileの if ブロック内でもっと多くのことをしたいのですが、これらの Unix コマンドに渡すたびに、それを二重引用符で囲んでスペースを処理する必要があることに気付きましたそうしないと、エラーが発生します。if 条件でわかるように、私はすでに 1 回実行しています。mvcpln$file

「一度だけ」二重引用符を付けて、毎回行う必要がないようにする方法はありますか?

4

2 に答える 2

4

「一度だけ」二重引用符を付けて、毎回行う必要がないようにする方法はありますか?

いいえ。スペースを含む可能性のある変数のすべての使用法を二重引用符で囲む必要があります (特殊な場合を除き、Mat の回答を参照してください)。それを回避する方法はありません。

これは珍しく、少し面倒ですが、すぐに慣れます。

于 2013-07-20T12:45:13.220 に答える
2

私が知っていることではありません。変数を単一の値として処理する場合は常に、その変数を引用符で囲む必要があります。

特にテストの場合は、二重括弧を使用して引用を避けることができます。その場合、単語分割は発生しません。しかし、それではタイピングの手間が省けません。

if [[ -f $file ]] ; then
  ...
fi
于 2013-07-20T12:45:32.393 に答える