乙個自動編輯檔案的shell指令碼自己玩的

2021-09-24 11:48:40 字數 2105 閱讀 9008

之前由於自己需要編寫大量的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 ...