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