shell程式語言注意要點

2021-08-16 03:47:39 字數 1214 閱讀 7857

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...