shell的if判断比较
shell中的if作用毋庸置疑每個(gè)80%的shell中都會(huì)應(yīng)用到if判斷,那么作為一個(gè)新手我應(yīng)該咋整呢,今天聽了一上午課,然后就把上午的東西總結(jié)了一下寫成了一個(gè)腳本,然后來進(jìn)行給大家聊一聊
#!/bin/bash
##############################################################
# File Name: bbjj.sh
# Version: V1.0
# Author: ls
# Organization: http://shuai12138.blog.51cto.com/
# Created Time : 2017-03-06 14:04:05
# Description:
##############################################################
read -p "pleace input: " -t 2 -n 1 x
echo""
read -p "pleace input: " -t 2 -n 1 y
echo"">/dev/null
if [ -n $x -a -n $y ]
then
if [[ "$x$y" =~ ^[0-9]+$ ]]
then
if [ $x -gt $y ]
then
?echo "$x>$y"
elif [ $x -eq $y ]
then
?echo "$x=$y"
else
?echo "$x<$y"
fi
else
echo "you must input number"
fi
else
echo "error:you must input two"
fi
?
首先來進(jìn)行第一行的說明:read -p "pleace input: " -t 2 -n 1 x?
read -p來進(jìn)行腳本交互式的輸入“pleace input”就是在執(zhí)行shell時(shí)的提示信息。 -t 2表示過了2秒鐘你不輸入,那么就會(huì)進(jìn)行退出。-n 1表示我只限制你只能輸入一個(gè)字符。
因?yàn)槲乙容^的是兩個(gè)數(shù)的大小所以我用來2個(gè)read,但是為什么我要在這中間加一個(gè)echo “”呢?因?yàn)槿绻患幽敲磖ead就在在你輸入完成$x那一行之后繼續(xù)讓你輸入$y,這完全是為了美觀。
echo"">/dev/null
為什么輸出空我說了,但是為什么要定向到“黑洞”呢,這是因?yàn)槿绻沂裁匆膊惠斎氲脑捨业哪_本會(huì)有提示信息,我不想看他,所以我給他定向到“黑洞”中。
if [ -n $x -a -n $y ]
then
fi
這是一個(gè)if判斷,-n是否不為空,-a條件語句(兩邊都滿足才行),這句話是判斷只有你的兩次輸入都不為空,那么才會(huì)執(zhí)行,否則會(huì)怎樣。
?
if [[ "$x$y" =~ ^[0-9]+$ ]]
then
fi
這是一個(gè)數(shù)字判斷,判斷你輸入的是否都是數(shù)字,因?yàn)槿绻爿斎氲氖亲帜?#xff0c;那么系統(tǒng)可能是一二進(jìn)制碼來比較的沒意義。所以我得判斷一下是否為數(shù)字。(這里特別說一下我是把$x$x都統(tǒng)一放到一起進(jìn)行比較的。要不然還會(huì)在進(jìn)行判斷,浪費(fèi)內(nèi)存)
?
if [ $x -gt $y ]
then
?echo "$x>$y"
elif [ $x -eq $y ]
then
?echo "$x=$y"
else
?echo "$x<$y"
fi
這就是數(shù)字的判斷了。我要判斷我輸入的兩個(gè)數(shù)字。-eq 等于 -gt 大于 -lt 小于 -ge 大于等于 -le小于等于。
?
轉(zhuǎn)載于:https://blog.51cto.com/shuai12138/1901603
與50位技術(shù)專家面對面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的shell的if判断比较的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分分钟一键部署Zabbix Server
- 下一篇: 关于对Enum的理解