shell script學習筆記2

2021-06-16 09:08:02 字數 1481 閱讀 9071

bash中的變數都是無型別的,可以通過declare來宣告int型變數

$0, $1, $2 .... $9, $, $, ...

如果引數超過9個,那就需要用$的方式

$#引數數目

$*, $@

引數集合

$最後乙個引數

整數比較

-eq, -ne, -gt, -ge, -lt, -le,  如 if [ "$a" -eq "$b" ]

>= <= > < 需要雙括號,如(("$a" < "$b"))

字串比較

[[ $a == z* ]] 如果$a以"z"開頭,那麼將為true

[[ $a == "z*" ]] 如果$a等於z*,那麼將為true

[ $a == z* ] file globbing和word splitting將會發生

[ "$a" == "z*" ] 如果$a等於z*,那麼結果為true

-n使用-n在結構中測試必須要用""把變數引起來,否則會出一些問題

比如 if [ -n $string ];then echo "not null";fi, string雖然未宣告,但是結果會是not null

糾正這個結果的做法是 if [ -n "$string" ]; then echo "not null";fi

變數替換

filename="hello.txt"

echo $  # txt

#與##的區別在於乙個是最短匹配模式,乙個是最長匹配模式

if [ $condition1 ] && [ $condition2 ]

if [ $condition1 -a $condition2 ]

if [[ $condition1 && $condition2 ]]

-a 邏輯與

-o 邏輯或

在中使用,[[ condition1 && condition2 ]]

-o -a 一般在test或者中使用,if [ "$exp1" -a "$exp2" ]

如果用在算數計算中,那

$((1 && 2)) # 1

$((0 && 2)) # 0

$((1 || 0)) # 1

$((0 || 0)) # 0

算數計算的幾種方法

let "n=$n+1"

let "n=n+1"

let "n++"

((n=$n+1))

((n++))

n=$(($n+1))

雙圓括號中的表示式是c風格的,所以可以加空格,可以不帶$來引用引數。

數字常量

let "dec=32"# 32

let "oct=032"

echo $oct#26

let "hex=0x32"

echo $hex#50

可以自己設定進製 base#number (base 範圍 2-64)

let "bin=2#101"

echo $bin#5

shell script學習筆記一

the fist line should be the following bin bash return value exit n usage of read command,讀鍵盤的輸入 read pt variable p 後面可以接提示資訊 t 後面可以接等待的秒數,這樣指令碼不用一直等下去...

shell script學習筆記三

迴圈 有四種方式 while do done,until do done,for do done,for in do done while do done while condition do do what you want done 解釋 當condition不成立時終止迴圈 until do ...

Linux學習筆記(Shell Script)

vim showname.sh bin bash program user inputs his first name and last name.program shows his full name.history 2015 07 16 vbird first release path bin ...