shell脚本常用命令

1.在sh脚本中获得系统当前时间作为变量的值

#日期

date=$(date +%F)
#时间
timer=$(date +%T)
#纳秒

ns=$(date +%N)

在shell中,没有可以直接获得毫秒的命令,通过下面的方法获得系统当前的毫秒

#毫秒
ms=${ns:0:3}

2.判断文件是否存在,判断路径是否存在以及是否具有可执行权限

filePath=/home/monitor/test/
#判断路径是否存在以及具有可执行权限,如果没有则创建
if [ ! -x ${filePath} ]
then
mkdir ${filePath}
fi

fileName=${date}${timer}${ns}.temp
tempfile=${filePath}${fileName}
#这里的-f参数判断文件是否存在,如果存在则删除再创建一个新的空的文件
if [ -f ${tempfile} ] 
then
rm ${tempfile}
touch ${tempfile}
fi

3.sh中分割输入的字符串

例如:test.sh文件中的内容如下:
#split parameter by "++",part one is command,part 2 is interval time,part 3 is fileName include absolute path
command=`echo ${@}|awk -F '++' '{print $1}'`
interval=`echo ${@}|awk -F '++' '{print $2}'`
fileName=`echo ${@}|awk -F '++' '{print $3}'`

执行test.sh文件:./test.sh a++b++c
那么command=a;interval=b;fileName=c

4.sh中无限循环执行一段代码

#1 -eq 1的值为true
while [ 1 -eq 1 ]
do
echo "do something"
        sleep 5
done

上面的代码每隔5秒执行echo语句

5.sh中的逻辑运算与或非(and、or、!)

在一个[]中括号中:
与:-a
或:-o

多个[]之间使用:
与:&&
或:||

#下面的if语句判断:如果三个参数都不为空
if [ ${command} -a ${interval} -a ${fileName} ]; then
while [ 1 -eq 1 ]
do
#日期
date=$(date +%F)
#时间
timer=$(date +%T)
#纳秒
ns=$(date +%N)
#毫秒
ms=${ns:0:3}
beginStr="*******start:${date} ${timer}.${ms}"
echo ${beginStr} >> ${fileName}
${command} >> ${fileName}
echo ${endStr} >> ${fileName}
echo "producering "${command}" to "${fileName}",interval time is "${interval}
        sleep ${interval}
done
else
echo "please input the parameters!!!"
fi

在测试时注意脚本中的空格,特别在条件判断中的空格,它们都是必须的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值