二重引用符内のコマンドの置換

二重引用符内のコマンドの置換

bashパーサーを作成しようとしています。多くの資料でこれを言及しています。ウィキペディア

私が詰まった部分の1つは、次が機能する理由です。

echo "$(echo "hi")"    # output => hi

Wikiによると、コマンドを置き換える前に引用符が解析されます。この場合、最初の二重引用符セットを解析するときにエラーが発生しないのはなぜですか?"$(echo "

答え1

リンクされた記事は次のとおりです。

除くすべてのキャラクター$"そして彼らが持っている可能性がある特別な意味を失います`\

[強調私のもの]

コードで$何が起こっているのか$(まだ特別な。$( )コマンド代替構文です。命令置換については、同じウェブサイトから:

コマンド置換を入力すると、シェルがまったく新しい引用文脈を開始することに注目する価値があります。つまり、代替の内部の二重引用符は、代替の外部の二重引用符と一致しません。

関連情報