このコマンドが期待どおりに機能しないのはなぜですか? [閉鎖]

このコマンドが期待どおりに機能しないのはなぜですか? [閉鎖]
cat $(echo this\\ list)

同じように見えるはずです。

cat this\ list

しかしそれは真実ではない。

私は使用できることを知っています

cat "$(echo this\\ list)"

しかし、複数のファイルをcatにエコーすることはできません。

最初のコマンドが機能しないのはなぜですか?

ベストアンサー1

次のことで何が起こっているのかを確認できますset -x

:> set -x
:> cat $(echo this\\ list)
++ echo 'this\' list
+ cat 'this\' list

:> cat this\ list
+ cat 'this list'

違いは、2つのパラメータ(1つのファイルと別のファイルを読み取ろうとすること)が'this\' listありますが、1つのパラメータ(別のファイル名など)があることです。catthis\list'this list'

以下を行う必要があります。

:> cat "$(echo this\ list)"
++ echo 'this list'
+ cat 'this list'

おすすめ記事