截取字符串关键信息:
某个version.log文件里有某一行文本version:3379
取出3379:1、version_str=`cat version.log | grep version` 2、version_number=${version_str#*:}
如果要取:左边的字符串则version=${version_str%%:*}
以逗号,空格等有规律分隔开的字符串处理:
某个open.log文件里有一行文本open_days:0,1,3,5,6
取到0,1,3,5,6并且放入数组:1、open_days_str=`cat open.log | grep open_days` 2、open_days=${open_days_str#*:}
3、open_arr=(${open_days//,/ })
for val in ${open_arr[*]}或 days_1=${open_arr[0]} days_2=${open_arr[1]}...
替换文件中的字符串:
sed -i "s/被替换串/新串/g" 文件名 不加g只替换首个匹配串
如果要在某个串前面或后面插入串
sed -i "s/\(目标串\)/插入串\1/" 在前面插入
sed -i "s/\(目标串\)/\1插入串/" 在后面插入
awk结合ps:
pid=`ps -ef | grep xxx | grep -v grep | awk '{print $2}'` 拿到进程id
var=`ps -ef | grep xxx | grep -v grep |awk '{print NR}' | tail -n1` 取到带xxx名字的进程数量
if [ $var -gt 0 ] 简单的判断进程存不存在
字符串比较:
if [[ ! -n "$open_today" ]] if [[ -n "$open_today" ]] open_today是否为空串
if [[ "$open_today" != "$today" ]] if [[ "$open_today" = "$today" ]] open_today是否与today相等
if [[ "$time_now" > "$defend_time" ]] 字符串比较大小 ascii码规则
字符串拼接:
现有变量
name=小明
age=21
拼成字符串["小明","21"]: result_str= "[\"$name\",\"$age\"]"
另外,直接跟指令的结果拼接:result=`date "+%Y%m%d"`":open" 结果是20190806:open
会用到的:
结果中不带字段名的查询语句`mysql -uxxx -pxxx -Ne 'select ...'`
echo -n > xxx.txt 清空文件
echo -e 可以识别转义符