-
批量執行命令
批量執行腳本也是可行的!
如,main.sh內寫
sh findpcap.sh sh extractor.sh
再執行sh main.sh 就先執行了findpcap.sh再執行extractor.sh,且sh腳本中是順序執行的,會等上一條執行完畢后再執行下一條。
-
腳本入門
-
腳本傳參
linux本身自帶傳參。
sh main.sh ~Downloads/pcap ~/Downloads
在腳本main.sh中傳入的第一個參數就是$1,傳入的第二個參數就是$2,傳入的參數都以字符串形式傳入
-
字符串處理
注意sh中字符串的定義,str='www.baidu.com',一定沒有空格!加了空格就會顯示str沒有定義!linux中空格比較嚴格。
在sh中,sh test.sh str 只是將str這三個字母作為字符串傳入test,要想將str代表的網址字符串傳入,需要在str前加$,即
sh test.sh $str
字符串截取時,在/***/***/***/www_***_com時,使用${var#*ww_}就可以保存網站名,但分隔符選擇/時,就要用${var##*/},多一個#號,一個#號是非貪婪匹配,匹配到第一個就輸出結果,兩個#號就是貪婪匹配,會匹配到最后一個。比如
var='/home/mason/Downloads/pcap/data/skyeu/skypeu.pcap' $: echo ${var#*/} $: home/mason/Downloads/pcap/data/skyeu/skypeu.pcap $: echo ${var##*/} $: skyeu.pcap
-
遍歷文件夾下
for var in $1/* do echo ${var} done
var即代表$1文件夾下所有文件的遍歷
var輸出的是文件的完整路徑(絕對路徑),而非文件名
注意傳入的$1最后不要帶斜杠。
-
腳本運行應用程序
在腳本中要進入到應用程序所在文件夾,並運行程序
#!/bin/sh cd /Applications/finalshelldata/ ./start
注意一定要./start運行程序
-
合並字符串輸出
合並字符串要$加括號
var1='skyeu' var2='flows' echo ${var1}_${var2}.txt