bomb炸弹
?
今天看到的一個Linux shell命令,但是我先說下,這個命令是危險的,所以沒事的時候不要隨便執(zhí)行,出現(xiàn)了各種危險不要怪我沒有提前告訴你哈。
DANGER!
命令代碼
:(){ :|: & };:命令解析1
:() 意思是定義了一個函數(shù),這個函數(shù)的名字叫做 : ,可能大家還不知道,冒號也可以定義為一個函數(shù),重點是冒號后面是一個()。這個指定了冒號就是一個函數(shù)。
{ :|: & } 這句的意思是我們執(zhí)行函數(shù) : ,并且把這個函數(shù)的輸出結(jié)果送給 : ,然后 & 這個的意思就是把前面這句話運行在后臺。
:(){ :|: & } 連起來這個就是定義一個遞歸函數(shù),不斷的調(diào)用,調(diào)用,調(diào)用……
; 這個符號就是一個分隔符,意思就是上面作為一個語句,下面是另一個語句。
: 最后是觸發(fā)運行一次 : 這個函數(shù)。
另一種解析
:(){ :|:& };: \_/| |||| ||\- 執(zhí)行函數(shù)| | |||| |\- 函數(shù)定義結(jié)束| | |||| \- 和 { 相互呼應(yīng)| | |||\- 后臺執(zhí)行| | ||| ? 這樣父進程被殺死了自己也不會被殺死| | ||\- 接收前一個命令的輸出| | || ?| | |\- 接收輸出| | \- 執(zhí)行函數(shù) :| \- 執(zhí)行函數(shù)\- 函數(shù)定義實際效果如下
總結(jié)
雖然是一個遞歸函數(shù),但是如果我們在這個吃掉系統(tǒng)所有資源之前,把它干掉,是可以避免系統(tǒng)重啟的。如果感興趣的同學(xué),可以測試看看。
推薦閱讀:
專輯|Linux文章匯總
專輯|程序人生
嵌入式Linux
微信掃描二維碼,關(guān)注我的公眾號
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)