條件判斷式的使用
if then
只有乙個判斷式
if
[條件判斷式]
;then
....
.. //符合if條件的在這裡執行
fi //返回來寫結束if判斷之意
多個條件
放在乙個[ ]裡
[a -o b] [a -a b]放在多個[ ]裡-o or
-a and
[a] && [b][a] || [b]
&& 代表 and
|| 代表 or
read -p "please input (y/n):" ynif[
"$yn"
=="y" -o "$yn"
=="y"];
then
echo -e "ok,continue"
exit 0
fiif
["$yn"
=="n" -o "$yn"
=="n"];
then
echo -e "ok,interrupt"
exit 0
fiecho -e "i dont't know what your choices"
&&exit 0
注意:多重、複雜條件判斷[ ]中兩側和各個條件之間加 空格
if 需要結束符號 fi 倒寫過來
乙個條件的判斷
#乙個條件判斷,分成功與失敗進行if[
];then
....
.. 條件成立時,執行的程式
else
....
.. 條件失敗時,執行的程式
fi
多個條件的判斷#更多條件參與判斷,分多種情況執行
if[1]
;then
....
.. 符合1,執行
elif
[2];
then
....
.. 符合2,執行
else
....
.. 1和2都不符合,執行
fi
實驗**if
["$1"
=="hello"];
then
echo -e "hello,how are you?"
elif
["$1"
==""];
then
echo -e "you must input parameters,ex> "
else
echo -e "the only parameter is hello, ex> "
fi
利用case#使用方式
case $變數名 in
"1")
....
..#滿足第乙個條件;;
"2")
....
..#滿足第二個條件;;
"*")
exit 1 #不滿足上述任何條件;;
esac
實驗**case
$1in
"one"
)echo
" your choice is one";;
"two"
)echo
"your choice is two";;
"three"
)echo
"your choice is three";;
*)echo
"usage $0 ";;
esac
使用function的功能#語法
function fname(
)
實驗**function printit(
)# read -p "input your choice:" choice
# case $choice in
echo
"this program will print your selection !"
case
$1in
"one"
) printit;
echo$1|
tr'a-z'
'a-z';;
"two"
) printit;
echo$1|
tr'a-z'
'a-z';;
"three"
) printit;
echo$1|
tr'a-z'
'a-z';;
*)echo
"usage $0 ";;
esac
注意,function的內建引數shell是自上而下,自左而右執行的,所以function的宣告必須放在最前面,否則會在呼叫的時候報找不到function的錯誤。
和shell指令碼的預設引數類似
$0代表函式名,$1,$2,3⋅⋅實驗**⋅⋅
⋅3·····
3⋅⋅⋅⋅⋅
#依次類推
使用的時候,不能和shell指令碼的預設引數混淆
function printit(
)# read -p "input your choice:" choice
# case $choice in
echo
"this program will print your selection !"
case
$1in
"one"
) printit 1
;;"two"
) printit 2
;;"three"
) printit 3
;; *)
echo
"usage $0 ";;
esac
注意:case 後面的 $1 指執行指令碼的時候緊跟的第乙個引數
printit 裡面的$1 指呼叫它緊跟的引數,這裡指 1 2 3
vim練級筆記一
命令模式下的操作 字元編輯x 刪除游標處字元 x 刪除游標起始處的 個字元 包含游標字元在內 xp 交換游標所在處前後的字元 轉換大小寫 j 刪除游標所在行之後的換行符 替換命令r 替換游標所在處的字元 r 切換成replace模式 又多了一種模式 替換模式 刪除命令d 刪除字元,可結合游標跳轉字元...
Shell指令碼筆記(二)Shell變數
全域性變數對於定義它的shell和其子shell都是可見的,但如果生成它的shell被終止,全域性變數也就消失了。另外全域性變數會被子shell的同名變數覆蓋。定義乙個全域性變數 export a i want break free 或者 b sunday morning export b 刪除乙個...
shell程式設計筆記(二)
終於要開始正式寫shell指令碼了 建立陣列變數的方式,直接給陣列的索引賦值 array index value注意 index是有取值範圍的 0,1023 如果乙個標量的名字和陣列名重名,那麼該標量對應的值就會變成該陣列0索引對應的值 另一種初始化陣列的方式,可以給多個元素一次性賦值 訪問方式也在...