0
我有這樣的功能:如何將函數的結果作爲參數傳遞給Bash函數?
test() {
echo "$1"
}
$1
可以接收的參數。此作品:
test "i am here"
i am here
現在我想要收到date
的結果。
date
Tue Jan 10 10:36:10 CST 2017
test `date`
Tue
如何使1月10日十點36分10秒CST 2017年不能省略?
它完全不是*省略*,而是作爲單獨的參數傳遞,因爲執行不帶引號的擴展(有一些例外,如賦值的右邊)會經過字符串分割和通配以形成它們的單詞列表評估爲。例如'10'是''$ 2''。如果你通過http://shellcheck.net/運行你的代碼,它會發現導致這個錯誤的引用。 –
順便說一句,'$()'語法是強烈的首選 - 它是POSIX sh的一個必需部分,因此可移植,但也比反引號更容易嵌套。 (寫'hello'$(殘酷的「$(world)」)「'是微不足道的;它的基於反向的等價...不是)。 –