shell的if判断比较
shell中的if作用毋庸置疑每個80%的shell中都會應用到if判斷,那么作為一個新手我應該咋整呢,今天聽了一上午課,然后就把上午的東西總結了一下寫成了一個腳本,然后來進行給大家聊一聊
#!/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
?
首先來進行第一行的說明:read -p "pleace input: " -t 2 -n 1 x?
read -p來進行腳本交互式的輸入“pleace input”就是在執行shell時的提示信息。 -t 2表示過了2秒鐘你不輸入,那么就會進行退出。-n 1表示我只限制你只能輸入一個字符。
因為我要比較的是兩個數的大小所以我用來2個read,但是為什么我要在這中間加一個echo “”呢?因為如果不加那么read就在在你輸入完成$x那一行之后繼續讓你輸入$y,這完全是為了美觀。
echo"">/dev/null
為什么輸出空我說了,但是為什么要定向到“黑洞”呢,這是因為如果我什么也不輸入的話我的腳本會有提示信息,我不想看他,所以我給他定向到“黑洞”中。
if [ -n $x -a -n $y ]
then
fi
這是一個if判斷,-n是否不為空,-a條件語句(兩邊都滿足才行),這句話是判斷只有你的兩次輸入都不為空,那么才會執行,否則會怎樣。
?
if [[ "$x$y" =~ ^[0-9]+$ ]]
then
fi
這是一個數字判斷,判斷你輸入的是否都是數字,因為如果你輸入的是字母,那么系統可能是一二進制碼來比較的沒意義。所以我得判斷一下是否為數字。(這里特別說一下我是把$x$x都統一放到一起進行比較的。要不然還會在進行判斷,浪費內存)
?
if [ $x -gt $y ]
then
?echo "$x>$y"
elif [ $x -eq $y ]
then
?echo "$x=$y"
else
?echo "$x<$y"
fi
這就是數字的判斷了。我要判斷我輸入的兩個數字。-eq 等于 -gt 大于 -lt 小于 -ge 大于等于 -le小于等于。
?
轉載于:https://blog.51cto.com/shuai12138/1901603
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的shell的if判断比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分分钟一键部署Zabbix Server
- 下一篇: 关于对Enum的理解