web-dev-qa-db-ja.com

サブシェルでのネストされた引用

引用符を使用してサブシェルの出力をカプセル化する必要があるとします。

DATA="$(cat file.hex | xxd -r)"

しかし、私はこのようなものを入れ子にする必要があります:

DATA="$(cat file.hex | xxd -r | tr -d \"$(cat trim.txt)\")"

単一引用符は、その中にある変数を展開しないため使用できません。引用符のエスケープは、パッシブテキストとして扱われるだけなので機能しません。

これをどのように処理しますか?

13
Melab

current Shellはそれらを解釈しないため、サブシェル内で引用符をエスケープする必要はありません(実際には$(から)までは解釈されません)。 )、およびサブシェルは、上記の引用符について認識していません。

変数の割り当て時にサブシェルを引用することも不要です。詳細については、man bashを参照してください。

19
MichalH

内部のネストされた引用符をエスケープする必要はありません。驚くことに、それらは適切に解析されます!

DATA="$(cat file.hex | xxd -r | tr -d "$(cat trim.txt)")"
8
wisbucky