私はUNIXに初めてアクセスし、現在のファイルabc_123_date.zip
名になるようにシェルスクリプトを作成していますabc_123_12312005
。その文字列を変数に保存してから、コマンドabc_123_*.zip
でハードコーディングする代わりに使用する予定です。たとえば、find
if [ -f ... ]
file_name=abc_123_*.zip
その後、残りのコードでは、$file_name
その文字列を必要とするすべての操作の代わりに実際の文字列を使用できます。
この文字列を保存する最良の方法は何ですか?
Option 1: file_name=abc_123_*.zip
Option 2: file_name="abc_123_*.zip"
どちらが良い選択ですか?なぜ?
ありがとうございます!
答え1
ファイル名ワイルドカードに関する限り、ファイル名ワイルドカードはシェルにとって重要ではないため、優先度の問題です。引用符があるかどうかにかかわらず、通常の(配列ではない)割り当てではファイル名の拡張とトークン化は行われません。
他の多くの状況でも引用符が必要ですが、値にスペースやシェル演算子(など)が;
含まれている場合は、割り当て(
にも引用符が必要です。>
したがって、一部の人はどこでも同じカスタマイズを使用するためにここでも使用したいと思うかもしれません。
また見なさい:いつ二重引用符が必要ですか?