幾個shell程式設計問題的回答

2021-04-24 21:45:16 字數 1305 閱讀 4369

現在把它的問題和我的回答整理如下,請各位大俠指正。

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會讓她覺得你對她的愛不夠堅定...