-2

いくつかのフォーラムやここで言及されているように、stackoverflowでは、シェルでのコマンド置換のこれら2つの方法に違いはありません。

しかし〜がある。これが実際の例です:

# this command works fine:
$(cat $LOG_FILE | gawk "(\$1 \$2) > $TIME")

# this one does not:
`cat $LOG_FILE | gawk "(\$1 \$2) > $TIME"`
4

1 に答える 1

1

そして、この背後にあるすべてのことは、bashが最初のものを見ると、途中で`すべてを置き換えて、別のものを見つけようとすることです。\$, \` and \\

\$1これは、、、$1そして、

内のすべてを置き換えると"..."、はエスケープされなくなり、gawkとして$1渡されるのではなく、シェルスクリプト自体(私の場合は空の文字列)の最初のアグリメントとして扱われます。$1

`...`これは、シェルで使用しないもう1つの理由です。

于 2012-12-29T13:12:32.757 に答える