新建乙個指令碼的基本流程為
注意事項:
向控制台輸出hello world ⇓
\darr
⇓
echo hello world
利用乙個變數,向控制台輸出hello world ⇓
\darr
⇓
a=
"hello world"
echo
$a
修改乙個變數的值(4種方法) ⇓
\darr
⇓
let i+=1;
((i++));
i=$[
$i+1];i=
$(($i+1))
# printf in binary
printf
"%05d\n"
`echo
"obase=2;$var"|bc
`# printf in decimal
printf
"%05d"
"$var"
)
# store the result of printf into a variable
cnt=
$(ls -al |
wc -l)
;cnt=
$(($cnt+1))
echo
$cnt
從命令列讀入乙個字串,並原樣輸出 ⇓
\darr
⇓
read input
echo you enter $input
迴圈向控制台輸出 3 個 hello world ⇓
\darr
⇓
# format 1
for((i=
0;i<
3;i++
))do
echo hello world $i
done
# format 2
for i in
doecho hello world $i
done
將整個陣列輸出到命令列 ⇓
\darr
⇓
story_list=
(hello0 hello1 hello2)
for i in
doecho
$done
基本格式如下
if
[ expression 1 ]
then
# command 1
elif
[ expression 2 ]
then
# command 2
else
# command 3
fi
例子:讀入乙個字元,並作出判斷 ⇓
\darr
⇓
echo
"do you...?(y/n):"
read readallif[
[$readall
="y"]]
;then
echo
"yes"
else
echo
"no"
fi
逐行讀取並輸出檔案內容 ⇓
\darr
⇓
cat filename.txt |
while
read line
doecho
$line
done
開啟乙個檔案,寫入乙個變數和一串字元⇓
\darr
⇓
a=
"hello world"
file=
"./filename.txt"
echo
$a>>
$file
echo
"----------------------"
>>
$file
執行程式rand_story ⇓
\darr
⇓
./rand_story story.txt words.txt 3
執行程式rand_story,並將程式輸出寫入到指定檔案 ⇓
\darr
⇓
./rand_story story.txt words.txt 3 >> output.txt
背景:假設我們現在有乙個程式要測試,程式接受三個輸入引數,前兩個分別是檔名(字串),第三個是乙個數字(數字)
功能:
# file name
file=
"./output.txt"
# clear the file content
echo
"">
$file
echo
"-----------test start-----------"
>>
$file
# modify number parameter
for i in;do
echo
====
=testcase $i
====
=>>
$file
./rand_story story.txt words.txt $i
>>
$file
done
story_list=
(story.txt story1.txt story2.txt)
# modify string parameter
for i in;do
echo
====
=testcase $i
====
=>>
$file
./rand_story $ words.txt 1 >>
$file
done
背景:有時候我們需要多次執行某乙個指令,直到執行成功,如持續ping乙個**直到ping通;當然我們也可以設定乙個最大執行次數,避免指令一直失敗從而長時間占用資源。同時,我們可以在兩次執行之間增加一點延遲。
**:
cnt=0
until
["$cnt" -ge 10 ];do
echo
"hello"
&&break
cnt=
$((cnt +1))
sleep 1m
done
這裡我們使用了一種寫法&&
,意思就是當且僅當command 1執行完畢並且返回值為0(成功)的時候,才會執行command 2。
類似的語法還有||
,意思就是當且僅當command 1執行完畢並且返回值不為0(錯誤)的時候,才會執行command 2。
應用場景:想要執行多個有依賴關係的指令時會格外有用(如後乙個指令要用到前乙個指令的結果,如果前乙個指令出錯則退出程式)。
||exit
||exit
||exit
bash 指令碼筆記
輸入了什麼引數 輸入了多少個引數 1輸入的第乙個引數,依此類推,直到 9 上一次的執行結果 為 1 2 3 一起被引號包住 為 1 2 3 分別被包住 為3 引數數量 d target target 是否是 目錄 f target 是否是檔案 e target 是否存在 目錄和檔案都適用 x tar...
bash指令碼基礎
shell 指令碼 一 如何建立新shell指令碼?1.建立包含bash命令的文字檔案。檔案第一行應為 bin bash 2.使檔案可執行 使用chmod x scripts 3.將檔案放置在使用者的 path的目錄中 bin 用於使用者的私有程式 usr local bin 本地開發 系統上的其他...
Bash 指令碼除錯
大神 bash是unix linux作業系統最常用的shell之一,它非常靈活,和awk c 配合起來異常強大 以下使用乙個測試指令碼來說明使用bash除錯的方法 test.sh bin bash echo begin awk end test.sh max 3 for i 0 i max i do...