Command

是的 $(yes yes) 是做什麼的?

  • November 10, 2017

想知道這個命令有什麼用yes,我偶然發現了這個評論,並試圖執行

yes $(yes yes)

據我了解,這應該只是列印出一個無限序列yes,但它什麼也不輸出,幾秒鐘後我的圖形終端崩潰了。(如果我在 tty1 上執行它,我會在一段時間後看到登錄提示。)

這裡發生了什麼?

應該已經足夠執行了

echo $(yes yes)

執行內部命令,$(...)直到完成並擷取其所有輸出。- 現在由於yes執行時間長並產生大量輸出,bash 最終會耗盡記憶體並崩潰。

要查看關閉 shell 的錯誤消息,您需要執行一個子 shell。

$ sh
$ kill -9 $$
Killed
$

$ sh
$ yes $(yes yes)
sh: xrealloc: cannot allocate 18446744071562067968 bytes
$

引用自:https://unix.stackexchange.com/questions/100647