拡張時に一重引用符と二重引用符の両方を含むことができる変数を含むコマンドライン引数の引用

拡張時に一重引用符と二重引用符の両方を含むことができる変数を含むコマンドライン引数の引用

コマンド文字列の適切な引用に失敗した後、次のように作業ディレクトリにある.jpgファイルに対して識別コマンドを発行しました。そのファイルの名前には、一重引用符および/または二重引用符を含めることができます。

for f in *.jpg; do
    xterm -e bash -c "identify -verbose \"${f/\"/\\\"}\" | less"
done

しかし、文字列置換構造を使用した変数拡張はPOSIXと互換性がないことに気づきました。

それでは、一重引用符と二重引用符を使用して文字列に拡張できるコマンドライン引数を引用する方法は何ですか?上記のコマンドのPOSIX互換構文は何ですか?

ベストアンサー1

ファイル名をコマンド文字列の引数として渡すことができます。

for f in *.jpg; do
  xterm -e bash -c 'identify -verbose "$1" | less' bash "$f"
done

おすすめ記事