shell脚本使用笔记

一直以来,自己都没怎么认真研究过shell脚本,每次都是临时google一下拼凑结果,导致每次要使用shell脚本时,开发效率都特别低。这次改变一下,将碰到的一些问题记录下来,争取对下次使用有所帮助。

1、获取时间的命令

time=`date --date='yesterday' "+%Y-%m-%d"`

time=`date --date='100 days ago' "+%Y-%m-%d"`

详细可参见:http://www.phpzixue.cn/detail818.shtml

2、if的使用

使用if的时候,注意左右方括号旁边一定要用空格隔开,否则会报错。右方括号后面接的“;”除外。

3、判断输入参数是否存在

直接使用 if [ $1 ] 就可以了,网上的一些方法也能达到效果,但是没有这个这么简单。

if还有多个命令,详细可参见:http://linux.ctocio.com.cn/285/9326285.shtml

4、循环读取某文件的写法

while read LINE
do
        ...

done <$config_file

5、对文件的一行按空格进行分割

ips[$i]=`echo $LINE | awk '{print $1}'`

6、数组的展现

数组展现时,需要使用大括号,如:${ips[$i]}

7、变量自增

变量自增有多种写法,其中一种为:((i++))

8、expect篇

expect的很多命令都不一样,所以不想折腾的话,就将一些准备逻辑扔到bash脚本里面去吧。

expect是有超时的,默认为10秒,修改方式为:set timeout 5。其实超时可以用来变相实现一些可选的步骤,因为如果该步骤执行不到,那么就会超时往下走。

详细可参见:http://fanqiang.chinaunix.net/a4/b8/20010912/1000001278.html

9、crontab篇

扔到crontab里面的时候,切记检查是否有相对路径问题,尤其是mkdir的命令容易让人忽略

crontab还有一个较大的问题就是环境变量的问题。

猜你喜欢

转载自kurier.iteye.com/blog/812344
今日推荐