shell编程备忘
1、脚本存放目录
workspace="$(cd "$(dirname "$0")"; pwd)"
2、输出 其中 command 代表指令
0 标准输入
1 标准输出
2 标准错误
dev/null 代表空设备文件
command >/dev/null #屏蔽标准输出
command >/dev/nul 2>&1 #屏蔽标准输出、标准错误
command > filename #把标准输入重定向到filename文件中(覆盖)
command >> filename #把标准输入重定向到filename文件中(追加)
3、数组
arr=(a b c) for val in ${arr[@]} do echo val done
数组长度 ${#arr}
4、字符串操作
grep -i ^abc$ filename
awk
echo a:b:c|awk -F : '{print $2}'
输出b
-F 后面跟分隔符 默认为空格
echo a:b:c|awk -F : '{print $NF}'
输出 c
NF为域个数
echo a:b:c|awk -F : '{print NF}'
输出 3
删除分隔符最后一项
path="a/b/c/d" dir=${path%/*} echo $dir
输出 a/b/c
5、获取某些行
head -1 #只显示第一行
head -2 #只显示前两行
tail -1 #只显示最后一行
6、文件内容替换
pattern="^Add:${filepath}$" replace="Modify:${filepath}" #由于路径中有/所以分隔符采用 # sed -i "s#${pattern}#${replace}#g" ${configPath}
sed -i 's/old/new/g' filename
其中 s 后面可以定义分隔符如#