1樓:匿名使用者
#!/bin/bash
# test an ip address for validity:
# usage:
# valid_ip ip_address
# if [[ $? -eq 0 ]]; then echo good; else echo bad; fi
# or
# if valid_ip ip_address; then echo good; else echo bad; fi
#function valid_ip()
\.[0-9]\.[0-9]\.[0-9]$ ]]; then
oifs=$ifs
ifs='.'
ip=($ip)
ifs=$oifs
[[ $ -le 255 && $ -le 255 \
&& $ -le 255 && $ -le 255 ]]
stat=$?
fireturn $stat
}# if run directly, execute some tests.
if [[ "$(basename $0 .sh)" == 'valid_ip' ]]; then
ips='
4.2.2.2
a.b.c.d
192.168.1.1
0.0.0.0
255.255.255.255
255.255.255.256
192.168.0.1
192.168.0
1234.123.123.123
'for ip in $ips
doif valid_ip $ip; then stat='good'; else stat='bad'; fi
printf "%-20s: %s\n" "$ip" "$stat"
done
fi試試這個
2樓:匿名使用者
#/bin/bash
echo -n "請輸入ip地址 : "
read ip
ip1=`echo $ip|cut -d . -f 1`
ip2=`echo $ip|cut -d . -f 2`
ip3=`echo $ip|cut -d . -f 3`
ip4=`echo $ip|cut -d . -f 4`
a=`echo $ip|grep "\."`
if [[ -z "$ip1" ]];then
echo "ip error"
exit 8
fiif [[ ! -z "$ip1" ]] && [ $ip1 -lt 255 ];then
if [[ ! -z "$ip2" ]] && [ $ip2 -lt 255 ] ;then
if [[ ! -z "$ip3" ]] && [ $ip3 -lt 255 ] ;then
if [[ ! -z "$ip4" ]] && [ $ip4 -lt 255 ] && [ $ip4 -ne 0 ] && [ $ip4 -ne 255 ];then
echo "ip ok"
else
echo "ip error"
fielse
echo "ip error"
fielse
echo "ip error"
fielse
echo "ip error"fi
3樓:匿名使用者
雖然直接用正規表示式也可以,但是對於數字比較來說,正則不擅長。並且如果只寫一個正規表示式,只能知道ip是否正確,不能得到具體錯誤資訊
在shell中如何判斷字串是否為有效的ip地址
4樓:匿名使用者
checkipaddr()
\.\([0-9]\\.\)\[0-9]\$" > /dev/null;
#ip地址必須為全數字
if [ $? -ne 0 ]
then
return 1
fi ipaddr=$1
a=`echo $ipaddr|awk -f . ''` #以"."分隔,取出每個列的值
b=`echo $ipaddr|awk -f . ''`
c=`echo $ipaddr|awk -f . ''`
d=`echo $ipaddr|awk -f . ''`
for num in $a $b $c $d
do if [ $num -gt 255 ] || [ $num -lt 0 ] #每個數值必須在0-255之間
then
return 1
fi done
return 0
} if [ $# -ne 1 ];then #判斷傳引數量
echo "usage: $0 ipaddress."
exit
else
checkipaddr $1fi
shell判斷輸入是否有效ip和字母
linux shell中編寫判斷ip地址有效性指令碼碰到了問題
5樓:匿名使用者
建議你先把這一堆邏輯判斷分開, 或者加一些除錯用的echo回顯 很快就能判斷出問題的
哎 雖然都是寫指令碼的, 可看到這個還是懶得去細看了 笨人的**風格就是不講究技巧 只講究清楚
關於linux的shell指令碼問題 50
6樓:匿名使用者
checkip $ipaddr && checkip $netmask && checkip $gateway //感覺有問題
關於一個設定ip地址的linux指令碼 50
7樓:baby神啊神
可以用這個匹配判斷ip地址,'\<(25[0-5]|2[0-4][0-9]|((1[0-9])|([1-9][0-9]))|[1-9])(\.(25[0-5]|2[0-4][0-9]|((1[0-9])|([1-9][0-9]))|[0-9]))\>'
8樓:匿名使用者
你那個if [ $?==1 ]有問題,shell裡是沒有==這種符號的,要麼用-eq,要麼用=,且=作判斷時兩邊都需空格,否則視為賦值。所以改為 if [ $?
= 1 ]或if [ $? -eq 1 ],你試試。
如何判斷自己是否得了肛瘻,如何自我判斷是否患了肛瘻
肛瘻的典型症狀主要有三個方面,肛周紅腫 疼痛,流膿和瘙癢。肛瘻是一個感染性的疾病,當膿液聚集在管腔內引流不通暢的時候,就會出現區域性的肛周紅腫 疼痛,只有當膿液流出以後,疼痛才能夠有所減輕。在肛瘻的初期流出來的膿液是比較多的,質地稠厚,味臭色黃,隨著膿液流出以後炎症消退了,然後疼痛才能夠有所減輕,膿...
如何判斷狗狗是否真的懷孕,如何判斷狗狗是否懷孕?
判定懷孕的方法有很多種,以下幾種方法可以幫助你判定是否懷孕了。第一種懷孕最直接的表現就是月經停止。如果你的月經週期正常的話,到了該來的時候還沒來你就可以考慮是否懷孕了。在月經沒來的基礎上,你可以去買試紙測一下,用早上的第一次尿檢測,顯示兩條紅槓的話就是懷孕了,一條槓的話就沒有懷孕。最後一種方法是最準...
shell中如何比較兩字串是否相等
bin bash a abc b def if a b then echo a is same as b else echo a is different from b fi bin bash filename is diffs.shif 2 then echo usage diffs.sh tex...