說明:
$ chmod a+x ./test.sh #使指令碼具有執行許可權
a=20
b=10
1.算術運算子列表 運算子 說明 舉例
+ 加法 `expr $a + $b` 結果為 30。
- 減法 `expr $a - $b` 結果為 10。
* 乘法 `expr $a \* $b` 結果為 200。 #乘法使用不同
/ 除法 `expr $a / $b` 結果為 2。
% 取餘 `expr $b % $a` 結果為 0。
= 賦值 a=$b 將把變數 b 的值賦給 a。
== 相等 相同則返回 true。 [ $a == $b ] 返回 false。
!= 不相等 不相同則返回 true。 [ $a != $b ] 返回 true。
2. -運算子
-eq //等於
-ne //不等於
-gt //大於
-lt //小於
ge //大於等於
le //小於等於
a.最簡單的shell指令碼
#!/bin/bash
echo
"hello world !"
b. 從鍵盤上輸入內容
#!/bin/bash
echo
"what is your name?"
read person
echo
"hello, $person"
執行指令碼,輸出:(比如輸入乙個1)
what is your name?
hello,1
c. while迴圈
#!/bin/bash
counter=0
while [ $counter
-lt5 ]
docounter='expr $counter+1'
#shell指令碼不是直接+1的
echo
$counter
done
執行指令碼,輸出:
12345
d. until[條件] 條件為假時才執行迴圈
#!/bin/bash
a=0until [ ! $a
-lt5 ]
doecho
$a a=`expr $a + 1`
done
執行結果:
01234
e. for迴圈
#!/bin/bash
for loop in12
345do
echo
"the value is: $loop"
done
執行結果:
the value is: 1
the value is: 2
the value is: 3
the value is: 4
the value is: 5
f. 函式
#!/bin/bash
hello
() # invoke your function
hello
執行結果:
$./test.sh
hello world
$g. shell檔案包含執行其它指令碼
1. vi subscript.sh
#!/bin/bash
url=""
echo
$url
2. vi main.sh
#!/bin/bash
./subscript.sh
執行結果:
h. 實踐中總結
//if巢狀
if [ "$_x" = "wifi_dvr_x" ]
then
echo
"------------ run /dm05_sample-----------------"
/md05_judge
ret_value=$? //如果有3個以上的返回值先把返回值儲存
if [ $ret_value
-eq0 ]
then
echo
"run main_wifi"
/home/dvr/bin/main_wifi $ &
elif [ $ret_value
-eq1 ]; then
echo
"run md05_sample"
/md05_sample
elif [ $ret_value
-eq2 ]; then
echo
"run test pcb "
fifi
特殊變數列表
#!/bin/bash
echo
"file name: $0"
echo
"first parameter : $1"
echo
"first parameter : $2"
echo
"quoted values: $@"
echo
"quoted values: $*"
echo
"total number of parameters : $#"
執行結果:
$./test.sh zara ali
file name : ./test.sh
first parameter : zara
second parameter : ali
quoted values: zara ali
quoted values: zara ali
total number of parameters : 2
特殊變數列表 變數 含義
$0 當前指令碼的檔名
$n 傳遞給指令碼或函式的引數。n 是乙個數字,表示第幾個引數。例如,第乙個引數是$1,第二個引數是$2。
$# 傳遞給指令碼或函式的引數個數。
$* 傳遞給指令碼或函式的所有引數。
$@ 傳遞給指令碼或函式的所有引數。被雙引號(" ")包含時,與 $* 稍有不同,下面將會講到。
$? 上個命令的退出狀態,或函式的返回值。
$$ 當前shell程序id。對於 shell 指令碼,就是這些指令碼所在的程序id。
Shell指令碼的使用
用途 shell是乙個命令列直譯器,為使用者提供乙個向linux核心傳送請求的系統及程式,使用者可使用shell執行啟動 掛起和停止一些程式。判斷檔案是否存在 if e 1 then echo 檔案存在 fi流程控制 bin bash if 條件判斷 then 程式elif 條件判斷 then 程式...
shell 指令碼的使用
使用source執行指令碼切換目錄才有效 source chdir.sh 關閉容器指令碼 刪除映象 docker rmi docker images q f dangling true 容器如果存在刪除容器 if docker ps aq filter name cicd demo then doc...
shell指令碼 tr的使用
通過使用tr,您可以非常容易地實現 sed 的許多最基本功能。您可以將 tr 看作為 sed的 極其 簡化的變體 它可以用乙個字元來替換另乙個字元,或者可以完全除去一些字元。您也可以用它來除去重複字元。這就是所有 tr所能夠做的。tr用來從標準輸入中通過替換或刪除操作進行字元轉換。tr主要用於刪除檔...