Shell实战训练营Day7

文件目录属性判断
[ -f file ] 判断是否为普通文件,且存在
[ -d dir ] 判断是否为目录,且存在
[ -e file ] 判断文件或目录是否存在
[ -r file ] 判断文件是否可读
[ -w file ] 判断文件是否可写
[ -x file ] 判断文件是否可执行*
[ ! -f file ] 取反 表示不存在

if的特殊用法
if [ -z "$a" ] 表示当变量a的值为空
if [ -n "$a" ] 表示当变量a的值不为空
if grep -wq 'word' file;then..... if可以结合其他命令使用,本列表示 若file文件中有包含word的行
if [ ! -e file ] ; then.... 表示问价不存在的时候执行then....
if (($a<1)) ; then.....等同于 if [ $a -lt 1 ];then.....
[ ] 中部支持 < ,>, >=,<=,!=,==符号 可以使用 lt gt le ge ne eq

case 用法
格式
case 变量名 in
value1)
command
;;
value2)
command
;;
.*)
command
;;
esac
在case程序中,可以在条件中使用 | 逻辑关系
条件1|条件2)
;;

case 用法举例
#!/bin/bash
read -p "please input a number :"  n    # 输入并捕获
if [ -z "$n" ]
then
            echo "please input a number."
            exit 1

fi
n1=echo $n|sed 's/[0-9]//g' #将变量n中全部数字替换为空然后赋值給n1
if [ ! -z "$n1" ] # 判断n1是否为空 此举判断输入是否为纯数字
then
echo "please input a number."
exit 1
fi
if [ $n -lt 60 ] &&[ $n -gt 0 ]
then
tag=1
elif [ $n -gt 60 ] && [ $n -lt 80 ]
then
tag=2
elif [ $n -gt 80 ] && [ $n -lt 90 ]
then
tag=3
elif [ $n -gt 90 ] && [ $n -le 100 ]
then
tag=4
else
tag=0
fi

case $tag in
1)
echo bjige
;;
2)
echo jige
;;
3)
ehco lianghao
;;
4)
echo youxiu
.*)
echo "please input number rage 1-100"
esac

for  循环

语法
for 变量名 in 条件;do.....;done

举例
#!/bin/bash
sum =0
for i in seq 1 100
do
sum=$[$sum+$i]
done
echo sum

举例
#!/bin/bash
cd /etc
for a in ls /etc/
do
if [ -d $a ]
then
ls $a
fi
done

猜你喜欢

转载自blog.51cto.com/12948291/2335226