Bashスクリプトコマンドで一重引用符をエスケープする

Bashスクリプトコマンドで一重引用符をエスケープする

一重引用符を含むコマンドを実行する必要があるスクリプトを作成しようとしています。以下は、スクリプトで実行したいコマンドです。

srt-live-transmit udp://224.0.0.0:1234 'srt://@1111?passphrase=thisisatest&latency=500' -v

BASH私のシェルスクリプトのコマンドは次のとおりです。

srt-live-transmit $MC srt://${SRT_IP}:${SRT_PORT}?${LATENCY}&${PASS} -v

ご覧のとおり、コマンドが2つのパラメータとをSRT許可するように、パスは一重引用符で囲まれています。 、を使用して一重引用符をエスケープしようとしましたが、プロセスリストでプロセスを見つけるためにgrepを実行すると、コマンドが実行されないか、パスに一重引用符がありません。passphraselatency\''\'''"'"'$\'SRT

ベストアンサー1

私が正しく理解し、あなたの変数に私の内容が含まれている場合推測するここでは、(次に変数の値が何であるか、どのように割り当てるかを示してください)、必要なのは参照だけです。

srt-live-transmit "$MC" "srt://${SRT_IP}:${SRT_PORT}?${LATENCY}&${PASS}" -v

一重引用符で囲まれた文字列内で一重引用符をエスケープすることはできませんが、変数を拡張できるように二重引用符を使用できます。

おすすめ記事