-
批量执行命令
批量执行脚本也是可行的!
如,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