用 bash 算費氏數列,就當了 - Linux

Table of Contents


無聊用各種方式實現費式數列,
然後用到了 bash 。
然後就當機了!

是寫在 .bashrc 裡。
source 了一次之後就有點頓,然後越來越頓。
我有一次 top 成功過,bash 吃的資源比 firefox 還多。
然後我連動個滑鼠都有問題, Ctrl Alt F2 竟然沒反應。
最後螢幕變雪花,強制關機。

當機應該和 bash 中用了遞迴有關,程式碼如下:


````````````````
febo(){
i=$1
(( j = i-1 , k = i-2 ))

if (( i <= 1 ))
then
echo 1
else
echo $(expr `febo $j` + `febo $k` )
fi
}

`````````````````

現在重開機了,有什麼要注意的嗎?
Fedora23 X LXDE ,開機過程沒有特別的訊息。
(我之前 ubuntu 斷電過一次,開機過程有顯示修復的訊息。)

--
sent from mySQL.
--
※ 發信站: 夢之大地 (ccns.cc), 來自: 140.116.249.140
※ 文章網址: telnet://ccns.cc/
foo:這作者……02/30 22:66
void:奇文共賞!!02/30 28:19

--

All Comments

Madame avatarMadame2016-04-24
這作者……
William avatarWilliam2016-04-27
奇文共賞!!
Leila avatarLeila2016-04-27
片段的程式碼無法提供有用的資訊
Hardy avatarHardy2016-04-27
無窮迴圈是想幹嘛
也沒有,只做一次,看錯
Audriana avatarAudriana2016-04-29
用 Bash 做數字運算,除了練功外沒啥好處,玩玩就好
Sandy avatarSandy2016-04-29
你叫它算到第幾項當掉的?還有,第零項不是0嗎?
Joe avatarJoe2016-05-04
fork bomb...
John avatarJohn2016-05-08
而且這程式邏輯不大對,50 會呼叫 49 48,49 呼叫 48
Robert avatarRobert2016-05-09
47,48 呼叫 47 46,...,根本一直重複呼叫呀。
Franklin avatarFranklin2016-05-11
49一次,48兩次,47三次,46四次,45五次...2會執行48
次...
Harry avatarHarry2016-05-12
最簡單的費氏數列確實是會跑48次啊 不想跑這麼多次就
要暫存
Yedda avatarYedda2016-05-13
以50項來說,用教課書的寫法,該函數會被呼叫 1226
次。簡單說費氏數列只適合給遞迴舉例用,真的要算費
氏,還是用基本迴圈吧。
Aaliyah avatarAaliyah2016-05-15
fork => echo $(expr `febo $j` + `febo $k` )
這邊總共三個外部指令 會各會fork一次shell
各自在跑各自的外部指令
Necoo avatarNecoo2016-05-20
哎 不對 febo不是外部指令XD echo / expr
Agnes avatarAgnes2016-05-22
http://tinyurl.com/kqc33xq
就平常負荷重一點的 sh script,如果一不小心沒去最
Rae avatarRae2016-05-26
佳化,也是跑得很喘,尤其是 loop+呼叫外部程式時。