次のコマンドを実行するとどうなりますか?理由と解決策を説明してください。
$ 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
。