何が間違っているのかわかりません:$ echo 'date`

何が間違っているのかわかりません:$ echo 'date`

次のコマンドを実行するとどうなりますか?理由と解決策を説明してください。

$ echo ‘`date`’

答え1

走っているようです。

echo '`date`'

(まもなく一重引用符に注意してください)date出力が出ると予想されます。シェルは一重引用符内に文字列を拡張しません。代わりに二重引用符を使用する必要があります。

echo "`date`"

またはそれを捨ててください。

echo `date`

これはすべて次のとおりです。

date

ただし、シェル分割とワイルドカード(指示どおり)は除外します。スティーブン・チャジェラス)、スペースは基本的に縮小されます。

答え2

公開されているように、外側の引用符はUnicode U + 2018およびU + 2019文字です。これは一般的な一重引用符ではなく、シェルに特別な意味がないため、次のように表示されます。

$ echo ‘`date`’
‘Fri Apr 7 19:55:15 EEST 2017’
$ 

この引用符の中には、シェルコマンドを置き換えるためのバックティックがあります。コマンドdateが実行され、キャプチャされた出力が文字列を置き換えますdate

関連情報