linux

linux编写脚本指南

2019-03-28  本文已影响0人  风一样的存在
  1. linux命令作为返回值
    反引号包裹的字符串,当作命令执行返回
pid = `ps -ef|grep gerapy|grep -v grep|awk '{print $2}'`
if ["$pid" = ""] ; then
    echo "gerapy is shutdown now!"
else
    kill -9 $pid
fi

当然也可以用$?获取返回值

  1. shell解析json字符串
    使用场景:curl请求后的结果是json数据,要获取json中的某一个字段。
#!/bin/bash
s="{\"rv\":0,\"flag\":1,\"url\":\"http://www.jinhill.com\",\"msg\":\"test\"}"
parse_json(){
#echo "$1" | sed "s/.*\"$2\":\([^,}]*\).*/\1/"
echo "${1//\"/}" | sed "s/.*$2:\([^,}]*\).*/\1/"
}
echo $s
value=$(parse_json $s "url")
echo $value
运行结果: 运行效果
  1. shell解析请求链接上的query参数
#!/bin/bash
s="http://www.zonetec.cn/WlanAuth/portal.do?appid=aaaa&apidx=0"
parse(){
 echo $1 | sed 's/.*'$2'=\([[:alnum:]]*\).*/\1/'
}
value=$(parse $s "appid")
echo $value
运行结果: 运行效果
  1. 获取当前时间
time=$(date "+%Y-%m-%d %H:%M:%S")
echo $time
time=$(date "+%Y%m%d%H%M%S")
echo $time
  1. 字符串截取
# (#号是运算符),*// 表示从左边开始删除第一个 // 号及左边的所有字符
var='http://www.linuxidc.com/123.htm'
echo ${var#*//}
# 输出结果:www.linuxidc.com/123.htm
# (##*/)表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符
var='http://www.linuxidc.com/123.htm'
echo ${var##*/}
# 输出结果:123.htm
# (%/*)表示从右边开始,删除第一个 / 号及右边的字符
var='http://www.linuxidc.com/123.htm'
echo ${var%/*}
# 输出结果: http://www.linuxidc.com
# (%%/*)表示从右边开始,删除最后(最左边)一个 / 号及右边的字符
var='http://www.linuxidc.com/123.htm'
echo ${var%%/*}
# 输出结果:http:
# 从左边第几个字符开始,及字符的个数
echo ${var:0:5}
# 表示左边第8个字符开始,一直到结束
echo ${var:7}
# 表示右边算起第7个字符开始,3 表示字符的个数
echo ${var:0-7:3}
# 从右边第几个字符开始,一直到结束
echo ${var:0-7}
运行结果: 运行结果
  1. 字符串拼接
    单引号和双引号的区别。单引号告诉shell忽略所有特殊字符,而双引号忽略大多数,但不包括$、\、`
echo 'the date is `date`'
# 输出结果:the date is `date`
echo "the date is `date`"
# 输出结果:the date is 2019年 3月28日 星期四 12时05分37秒 CST
var1='/etc/'
var2='software/packages/'
echo ${var1}${var2}
# 输出结果:/etc/software/packages/
  1. 去除字符串空格
上一篇下一篇

猜你喜欢

热点阅读