我分享一个2个数字
的SHELL 你可以举一反三《Linux就该这么学》中有个Linux命令大全
#1.判断是不是两个数
[ $# -ne 2 ] &&{
echo "Usage:$0 num1 num2"
exit 1
}
#2.判断是否为数字
expr $1 + $2 + 999 &>/dev/null
[ $? -ne 0 ] &&{ echo "请输入两个整数
"
exit 2
}
if [ $1 -gt $2 ]
then
echo "$1>$2"
elif [ $1 -lt $2 ]
then
echo "$1<$2"
else
echo "$1=$2"
fi
========================
read -p "please two number: " a b
expr $a + $b + 999 &>/dev/null
if [ $? -ne 0 ]
then
echo "请输入两个整数"
exit 1
else
if [ $a -gt $b ]
then
echo "$a>$b"
elif [ $a -lt $b ]
then
echo "$a<$b"
else
echo "$a=$b"
fi
fiShell代码 #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin ram_max=9 ram=10.2 #ram大于ram_max打印出1赋值给变量check check=`echo $ram >$ram_max bc` #判断如果check匹配1打印1,注意空格(shell格式不正确会导致运行错误) if [ $check = 1 ] then echo 1 fishell中有两种比较,一种是字符串比较,直接使用运算符号进行比较,一种是值的比较(即数字的比较)只能使用关键字进行比较即-eq -lt等
当然也能使用关键字进行字符串的比较,比如-z 来判断一个字符串是否为空
来一个例子
#!/bin/bash
a=1
if [ $a = 1 ]
then
echo =
fi
if [ $a -eq 1 ]
then
echo eq
fi
这时第一个if中的a既是进行了字符的比较,第二个if中是数值的比较。但结果是既输出了= 也输出了eq。就是说a即和数字的1相等,也和字符的1相等
评论列表(0条)