2018-11-12 16:12:24 Gino_tkzzz 阅读数 644

Shell的判断条件有两种写法:1.-lt(小于),-gt(大于),-le(小于等于),-ge(大于等于),-eq(等于),-ne(不等于)

l--less

g--great

t--than

e--equal

n--not

if [ $s -lt 0 ] || [ $s -gt 100 ]
then
        echo "number is out of range, 1-100"
        exit 1
fi

 

在shell中需要和 [x  x](中括号)搭配使用,另外,需要注意x的位置应该给空格

2.>,<,==,>=,<=

需要和((  )) 双小括号搭配使用

if (( $s < 60 ))
then
        tag=1
elif (( $s < 80 ))
then
        tag=2
else
        tag=3
fi

对初学者来说,容易混淆,马克一下.

2019-03-22 22:34:07 YouOops 阅读数 100

回顾

整数测试
-le
-lt
-ge
-gt
-eq
-ne
字符测试
==
!=
>
<
-n
-z
文件测试
-e
-f
-d
-r
-w
-x

组合测试条件
-a 与关系
-o 或关系
! 非关系
eg:if [ $# -gt 1 -a $# -le 3 ]
    if [ $# -gt 1 ] && [ $# -le 3 ]
练习

写一个脚本,接受参数:q,Q,quit,Quit。是这几个参数就退出,否则提示无法识别的参数。

#!/bin/bash
#
if [ $1 =\= 'q' -o $1 =\= 'Q' --o $1 =\= 'quit' -o $1 =\= 'Quit' ]; then
echo "Quiting..."
else 
echo "Unknown Argumen."
exit 1
fi

扩展:如果用户所给不是以上4个参数,则创建该参数命名的用户。

2017-11-29 21:34:20 qq_37924810 阅读数 243

选择

 -gt   -eq   -lt     -le     -ge  数字
大于    等于   小于
    >  <  >=   ....       字符串

eg:

if [ $a -gt 1 ]  
then 
    echo " a>1 "
elif [ $a -eq 1 ]
then
    echo "a==1  "
else
    echo " a<1 "

fi
case $1 in 
0)
echo "Hello"
echo "param0=0";;
1)
echo "param0=1";;
*)
echo "error";;

esac

循环

for i in 1 2 3                 //eg: " 1 2 3 "  "5 56 "
do
    echo $i
done
for i in $(seq 1 1 10)
do
    echo "i=$i"      :  //eg:echo "i=${i}sfdff"  
done
for ((i=0;i<10;i++))    //双括号里面的内容按照数学运算计算
do
    echo "i=$i"
done
i=0
while [ $i -lt 10 ]
//while((i<10)) 
do
    echo "i=$i"
    ((i++))
done
i=0
until [ $i -gt 10 ]
do
    echo "i=$i"
    ((i++))
done

谢谢,浏览!

2017-09-08 10:41:54 cwx434498 阅读数 375

-f 文件存在而且为真

-n str 字符串长度大于0为真

-z str  字符串长度为0真

str 字符串非空纬真

-eq 相等

-ne 不相等

-gt >

-lt <

-ge >=

-le <=

-r  可读为真

-w 可写为真

-x 可执行为真 

-f 正规为真

-d 是目录为真

-c 其他字符文件为真

-b 块特殊文件真

-s 文件大小非0为真

逻辑判断:

-a 与

-o 或

! 非


没有更多推荐了,返回首页