在bash指令碼裡面作浮點數比較
冷勝魁(seaquester)
lengshengkui@gmail.com
2008-9-16
bash本身並不支援浮點數,它將浮點數當成乙個字串來處理。由於某種原因,需要在指令碼裡面比較兩個浮點數,遇到了一些麻煩:
#!/bin/sh
a=14.23
b=9.12
if [[ $a < $b ]] ; then
echo "a < b"
else
echo "a > b"fi
上面的指令碼正常情況下應該顯示 a>b,但是實際上卻顯示a浮點數的比較(運算)應該使用 bc 才可以得到正確的結果,如下:
#!/bin/sh
a=14.23
b=9.12
c=$(echo "$a>$b"|bc) #當 a>b時,c=1
if [[ $c -eq 0 ]] ; then
echo "a < b"
else
echo "a > b"fi
bc的用法很多,詳細的說明參考man bc。
shell指令碼裡的變數
1 在命令列中和指令碼中,變數定義得格式 name value 左右兩邊不能有空格,否則會當做命令來對待,輸出乙個command not found echo name echo 列印出變數,引用變數使用 name.2 單引號和雙引號 語法 和php中相同 雙引號仍然可以保有變數的內容,但單引號內僅...
指令碼裡學數學 函式
二 函式返回值 三 函式傳參 四 函式變數作用範圍 五 函式庫 六 遞迴 將命令序列按格式寫在一起 可方便重複使用命令序列 function 函式名函式名 return表示退出函式並返回乙個退出值,指令碼中可以用 變數顯示該值 使用原則 1 函式一結束就取返回值,因為 變數只返回執行的最後一條命令的...
shell指令碼裡的引號簡介
一 雙引號 使用雙引號可引用除字元 外的任意字元或字串 例 string hello world echo string print hello world echo string print hello world echo string print hello world echo 2 3 pr...