1 . $* 和$@ 區別
相同點:都表示傳遞給指令碼的所有引數。
不同點:
不被" "包含時,$*和$@都以$1 $2… $n 的形式組成引數列表。
被" "包含時,"$*" 會將所有的引數作為乙個整體,以"$1 $2 … $n"的形式組成乙個整串;
"$@" 會將各個引數分開,以"$1" "$2" … "$n" 的形式組成乙個引數列表。
2. shell 運算子
shell 和其他程式設計語音一樣,支援包括:算術、關係、布林、字串等運算子。
原生 bash 不支援簡單的數**算,但是可以通過其他命令來實現,例如
expr。expr 是一款表示式計算工具,使用它能完成表示式的求值操作。
例如,兩個數相加:
val=`expr 2 + 2`
echo $val
注意:表示式和運算子之間一定要有空格,例如 2+2 是不對的,必須寫成 2 + 2。
完整的表示式要被 ` ` 包含,注意不是單引號,在 esc 鍵下邊。
詳細請參考附件資料《shell 運算子》。
此外,還可以通過(())、$進行算術運算。
count=1
((count++))
echo $count
a=$((1+2))
a=$[1+2]
3.for迴圈
方式一for n in 1 2 3
do echo $n
done
或 for n in 1 2 3; do echo $n; done
或for n in ; do echo $n; done
方式二for ((i = 0; i <= 5; i++))
do echo "welcome $i times"
done
或 for ((i = 0; i <= 5; i++)); do echo "welcome $i times"; done
4. 函式使用
所有函式在使用前必須定義。這意味著必須將函式放在指令碼開始部分,直至shell 直譯器首次發現它時,才可以使用。呼叫函式僅使用其函式名即可。
[ function ] funname [()]
1、可以帶 function fun()定義,也可以直接 fun() 定義,不帶任何引數。
2、引數返回,可以顯示加 return ,如果不加,將以最後一條命令執行結果,作為返回值。 return 後跟數值 n(0-255)。
linux開發 一 shell程式設計要點
linux開發 一 shell簡單程式設計 1 變數賦值時,不需要加 符,只有取變數值的時候,需要加 符 2 雙引號可以進行變數值替換,單引號和 不能進行變數替換 3 主要的環境變數 常量 home 當前使用者的家目錄 path 以冒號分隔的用來搜尋命令的目錄列表 ps1 命令提示符,通常是 字元,...
Shell程式設計注意事項
1.變數賦值時 兩邊不能有空格 在使用高階語言程式設計是,為了顯示清楚,本人常常在等號兩邊加上空格,在shell程式設計時,加上空格會報錯,但未必不能執行 2.使用字串時可以不加雙引號,直接使用,但是中間不能有 或者轉義字元 例如 echo hello world hello everyone 可以...
最近總結的安全程式設計注意要點
一 空指標問題 1 指標在使用前沒有做為空判斷,導致程式crash 2 指標在new之後沒有判斷是否new成功 3 類成員指標沒有初始化,卻在析構函式中判斷是否為空並刪除 二 記憶體越界問題 記憶體越界導致的問題往往比空指標來得更嚴重,因為有很高的機率可能導致宕機。以下是我們採取的解決方案 wspr...