shell 基础

【if】

  语法格式

if ....; then
    ....
elif ....; then
    ....
else
    ....
fi

  -f file    判断是否是一个文件
  -n $var    判断$var变量是否有值
  -r file    用户可读为真
  -w file    用户可写为真
  -x file    用户可执行为真
  -f file    文件为正规文件为真
  -d file    文件为目录为真
  -c file    文件为字符特殊文件为真
  -b file    文件为块特殊文件为真
  -s file    文件大小非0时为真
  -t file    当文件描述符(默认为1)指定的设备为终端时为真

  -ne  —比较两个参数是否不相等
  -lt  —参数1是否小于参数2
  -le  —参数1是否小于等于参数2
  -gt  —参数1是否大于参数2
  -ge  —参数1是否大于等于参数2

#示例代码:判断文件是否存在
#注意中括号里面的空格,不可缺少
if [ -f 'a.log' ];then echo './a.log is exists' else echo './a.log is not exists' fi

 

【switch】

 

case expression  in 
    pattern1  )
        statements ;; 
    pattern2  )
        statements ;; 
    ... 
esac

 

#实力代码:nginx初始化脚本
#!/bin/sh

BIN=/path/to/nginx/sbin/nginx;
PID=/path/to/nginx/logs/nginx.pid;
CNF=/path/to/nginx/conf/nginx.conf;
ulimit -SHn 10240
case $1 in
        start)
                $BIN -c $CNF
                exit $?;
                ;;
        stop)
                kill $(cat $PID);
                exit $?;
                ;;
        reload)
                kill -HUP $(cat $PID);
                exit $?;
                ;;
        rotate)
                kill -USR1 $(cat $PID);
                exit $?;
                ;;
        port)
                echo "Your port is 80";
                ;;
        *)
                echo "Usage: $0 {start|stop|reload|roate|port}";
                exit 1;
esac

 

【for】

# for in
for var in ....; do
   ....
done

# for
for((赋值;条件;运算语句))
#示例代码:for
for ((i=1;i<10;i++));
do
    echo $i
done


#示例代码:for in (1)
for var in A B C ; 
do
   echo "var is $var"
done


#示例代码:for in (2) for file in `ls`; do echo $file done

 

【while】

while expression
do
    ...
done
while ((i<10));
do
    echo $i
    let i++
done

 

posted @ 2015-06-02 21:44  iamdoufu  阅读(151)  评论(0编辑  收藏  举报