現在把它的問題和我的回答整理如下,請各位大俠指正。
1result=`expr $result+$i`
result=$result+$i
result=$(($result+$i))
三者有什麼不同?算術計算的話用哪個?
前面用result=0定義了變數,後面為什麼不用$result=$result+$i的?
回答:1 result=`expr $result+$i` 和 result=$(($result+$i))兩者的計算結果是相同的,算術計算的話最好用第二個,比較節省資源且速度較快。可以使用$()來替代反引號對。
2 result=$result+$i與另外兩個是完全不同的,在shell裡並沒有「+」運算子(至少我還沒發現,如果我錯了請你告訴我),所以這條算式的執行過程是:先把$result和$i替換為相應的值,然後和「+」作為乙個字串賦給了result變數,並不會進行計算。由此你應該明白了為什麼不用「$result=$result+$i」了,不要把shell和c等語言混淆了。
2for i in 1 2 3 4 5
do……
中,如果i需要1到100的值迴圈怎麼寫?for i in [ 1-100 ]又不行~
回答:for語句最好用來對某乙個字串集合進行相關運算,例如:
for file in *
do echo $file
done
對當前目錄下的檔案進行遍歷。
如果想要執行特定次數的話,就只能用while或者until了。
例如:迴圈一百次。
x=0
while [ "$x" != "100" ];
do echo "$x < 100"
x=$(($x+1))
done
exit 0
3在做100!的程式時,實現乘法出錯result=$(($result*$i))不行
回答:不是不行,而是100!越往後的值越大,shell變數存不了那麼大的值。能夠計算到20!就很不錯了,再往後必須使用大數演算法
4bash shell中有-eq -le -ge為什麼也有= <= >等比較符號?什麼差別?
回答:差別很大,-eq -le -ge這些符號只用於test或[命令,而<,<=這些符號用於expr命令。這些應該是專屬於特定命令的,而不是shell的比較運算子。
幾個簡單的shell程式設計題
下面是幾個關於shell簡單的程式設計題目,算是熟悉一下shell吧 首先開啟我們的終端,然後進入我的共享檔案 cd mnt hgfs 看到在共享檔案下游乙個資料夾virtual 進入virtual 裡面有個資料夾test 檢視test裡面的目錄檔案發現裡面有一些檔案,我們的程式設計例子就是這些檔案...
程式設計時遇到的問題,以及回答
前期用到了一些函式,但是忘記了整理,從現在開始整理。1.cumtrapz 用這個函式進行離散資料積分是可行的,但是使用trapz求積分卻不行 這裡我針對trapz定義了區間,但是出來的線段不對勁 是這兩個函式的區別導致的錯誤嗎?還是我trapz使用錯誤?答 trapz只有最終值,而cumtrapz是...
應該這麼回答領導愛問的幾個問題
網上閒逛時發現的,有種得救的感覺 問題一 你愛我嗎?錯誤答案a 愛。錯誤答案b 這還用問嗎?錯誤答案c 你煩不煩啊?標準答案 目光憐愛的望著對方三秒,然後神情鄭重的點一下頭,同時發出 嗯 的聲音,然後一把把她攬在懷裡。解析 答案a會讓她覺得你太不嚴肅了,純粹胡弄她 答案b會讓她覺得你對她的愛不夠堅定...