無法意識到有什麼問題: $ echo '`date`'

無法意識到有什麼問題: $ echo '`date`'

執行以下命令時會發生什麼?解釋一下原因以及如何解決:

$ echo ‘`date`’

答案1

我猜你正在跑步

echo '`date`'

(注意直單引號)並期望看到date的輸出。 shell 永遠不會擴展單引號內的字串;你應該使用雙引號代替:

echo "`date`"

或直接丟掉它們

echo `date`

這一切都相當於

date

不過,除了外殼分裂和通配符(正如指出的那樣)史蒂芬·查澤拉斯),預設會折疊空白。

答案2

正如發布的,外引號是 Unicode U+2018 和 U+2019 字元。這些不是常規的單引號,對 shell 沒有特殊意義,只是回顯:

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

這些引號內是用於 shell 指令替換的反引號。該date命令被執行,捕獲的輸出將替換該date字串。

相關內容