之前由於自己需要編寫大量的xml檔案,所以就寫了這個指令碼,本人不會寫指令碼,通過這次就學習了指令碼的寫法,然後記錄在這以便隨時補充和學習shell指令碼的內容,並通過該指令碼拓展一下shell中的很多語法,並記錄一下awk和tr命令的使用,其他像sed,grep等以後用到時在補充吧
#!/bin/bash
fn=htlm.xml //shell程式設計中「=」兩邊不允許出現空格
echo "" >> $ //fn變數引用時要可以$fn也可以使用$
echo "" >> $
echo "" >> $
tmp.xml檔案,用來輸入key value對
title csdn
style 3
link a
div 3
效果展示
特殊變數:
$* 和 $@ 的區別
$* 和 $@ 都表示傳遞給函式或指令碼的所有引數,不被雙引號(" 「)包含時,都以」$1" 「2"…
"2" … "
2"…"
n」 的形式輸出所有引數。
但是當它們被雙引號(" 「)包含時,」$*" 會將所有的引數作為乙個整體,以"$1 $2 … n"的
形式輸出
所有引數
;"n"的形式輸出所有引數;"
n"的形式輸
出所有參
數;"@" 會將各個引數分開,以"$1" 「2"…
"2" … "
2"…"
n」 的形式輸出所有引數。
操作符:
if語法:
if [ expression ] //在expression兩端是要有空格的,以上的操作符內容可運用在這裡
then
expression
else
expression
fi
for語法:
for i in $(seq 1 10) //for in $(seq 1 2 10): 1起始,2步長,10終點;for ((i = 0; i < 10; i++)) ;for i in 1 2 3 4;for str in "w er t" "a w t"
do expression //裡面可以使用continue,break語句
done
awk使用:
使用man手冊檢視
gawk [ posix or gnu style options ] [ – ] program-text file
例子:
awk '/myhome.html/ '
awk '; end ' file
awk -f: '' /etc/passwd
用到的-f和-v使用的最多,在檔案shell指令碼中在給awk命令傳入變數時總是失敗,於是找到了-v引數,然後如指令碼程式中使用
awk -vnvar="$cnt" 『}』 tmp.xml, 使用-v將cnt變數給了nvar,nvar在awk程式中使用,即是cnt值
tr使用:
tr [option]… set1 [set2]
-d, --delete: tr -d ';'刪除分號
其它的使用的方式沒有用過,用時man手冊
截圖**
30分鐘玩轉Shell 第乙個Shell指令碼
開啟文字編輯器,新建乙個檔案,擴充套件名為sh sh代表shell 副檔名並不影響指令碼執行,見名知意就好,如果你用php寫shell 指令碼,副檔名就用php好了。輸入一些 bin bash echo hello world 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種...
shell編寫乙個簡單的jmeter自動化壓測指令碼
在公司做壓力測試也挺長時間了,每次測試前環境資料準備都需要話費較長時間,所以一直在考慮能不能將整個過程實現自動化進行,於是就抽空寫了乙個自動化指令碼,當然這個指令碼目前功能十分簡陋,也不完善,很有很多需要改的地方,後續再優化。文中如有錯誤或者不妥之處,還望指教。1 初始化資料庫 匯入使用者,清除資料...
Shell程式檔案上傳以及自動備份部署指令碼
dmz機器程式檔案上傳到伺服器指定目錄指令碼 bin bash author pine chown 任務分發指令碼 2017 08 25 instance1 gcharging1 inside deploy file gcharging.zip time date f timestamp date ...