変数(ファイル名を含む)を二重引用符で囲むと$
、*
sとbackticks('
)が展開されます。たとえばcmp "$file1" "$file2"
、両方のファイル*
の先頭にsが含まれている場合や、その他の「通常」のファイルが含まれている場合は問題ありません。ただし、ファイルの先頭にダッシュがいくつでも含まれている場合は機能しません。代わりに、-の文字通りの意味を実行しようとし、オプションとして扱います。これをどのように回避しますか?
これは機能します:
var1=*file.txt
var2=*file2.txt
cmp "$var1" "$var2"
だが
var1=-file.txt
cmp "$var1" "$var2"
-は認識されないオプションです。何か案は?