Shell判断格式

from:http://blog.csdn.net/qyf_5445/article/details/8886071

9.if判断都有哪些格式?
格式一:
   if  [  ];then
   ........
   fi
  等价于
  if  [  ]
  then
  ...........
  fi

格式二:
  if  [ ]
  then
  ..........
  else
  ..........
  fi

格式三:
  if [ ]
  then
  ......
  elif [ ]
  then
  .......
  fi

格式四:
  if [ ]
  then
  ......
  elif [ ]
  then
  .......
  elif [ ]
  then
  .......
  elif [ ]
  ........
  elif
  .......
  fi

if-grep结构:
if grep -q aa  book.txt
then echo "book.txt至少有一个字符串aa"
fi

 

10.if判断有哪些参数?
 -b 当文件存在并且是块文件时返回真
 -c 当文件存在并且是字符文件时返回真
 -d 当目录存在时返回真
 -e 当文件或目录存在时返回真
 -f 当文件存在并且是正规文件(不是目录或者设备文件)时返回真
 -g 当文件或目录存在并且设置了SGID位时返回为真
 -h 当文件存在并且是符号链接文件时返回真,该选项在一些老系统上无效
 -k 当文件或目录存在并且设置了"粘滞"位时返回真
 -L  当文件是个符号链接返回真
 -N 当从文件最后被阅读到现在被修改过时返回真
 -O 当文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。
 -p 当文件存在并且是命令管道时返回为真
 -r 当文件或目录存在并且可读时返回为真
 -s 当文件大小大于0时返回真
 -S 当文件是个socket时返回真
 -t 关联到一个终端设备的文件描述符这个选项一般都用来检测是否在一个给定脚本中的 stdin[-t0]或[-t1]是一个终   端
 -u 当文件或目录存在并且设置了SUID位时返回真
 -w 当文件或目录存在并且可写时返回真。
 -x 当文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。
 -z  变量是空串时返回真
 -n 变量是非空串时返回真 


比较字符写法:
 -eq 等于
 -ne 不等于
 -gt 大于
 -lt 小于
 -le 小于等于
 -ge 大于等于
 = 两个字符相等
 != 两个字符不等


 12.循环结构:
(1)while循环
while [ ]
do
..........
done
或者while [ ];do
      ........
      done
例:一个简单的死循环
while true
do
   echo "hello"
done
(2)for循环
for 变量  in  取值列表    //取值列表可以是如1 2 3 4 5或者{1..5}或者`seq 5`或者`命令`形式
do
..........
done
(3)until循环
until [ ]
do 
........
done

posted @ 2015-06-11 10:57  tsguosj  阅读(1194)  评论(0编辑  收藏  举报