溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何用shell腳本驗(yàn)證用戶輸入的參數(shù)合法性

發(fā)布時(shí)間:2021-09-16 17:00:23 來(lái)源:億速云 閱讀:166 作者:柒染 欄目:開(kāi)發(fā)技術(shù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何用shell腳本驗(yàn)證用戶輸入的參數(shù)合法性,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

今天這個(gè)例子是 用來(lái)驗(yàn)證用戶輸入的參數(shù)的合法性的,程序并不復(fù)雜,如下所示:

#!/bin/sh
# validAlphaNum - Ensures that input consists only of alphabetical
# and numeric characters.

validAlphaNum()
{
 # Validate arg: returns 0 if all upper+lower+digits, 1 otherwise

 # Remove all unacceptable chars
 compressed="$(echo $1 | sed -e 's/[^[:alnum:]]//g')"

 if [ "$compressed" != "$input" ] ; then
  return 1
 else
  return 0
 fi
}

# Sample usage of this function in a script

echo -n "Enter input: "
read input

if ! validAlphaNum "$input" ; then  #// 這個(gè)有點(diǎn)巧妙,就是如果函數(shù)的返回值為1的話,則執(zhí)行
 echo "Your input must consist of only letters and numbers." >&2
 exit 1
else
 echo "Input is valid."
fi

exit 0

就像上面所說(shuō)這腳本流程和思路還是很簡(jiǎn)明的,就是講你的輸入用sed過(guò)濾后于原輸入相比較,不相等則輸入不合法。
值得注意的地方有
1) sed -e 's/[^ [:alnum:]]//g' ([:alnum:]是 大小寫字母及數(shù)字的意思,這里sed的作用是將非大小寫字母及數(shù)字過(guò)濾掉。
2) if ! validAlphaNum "$input" $input作為 函數(shù)的參數(shù)被調(diào)用,注意這里加了引號(hào)。

上述就是小編為大家分享的如何用shell腳本驗(yàn)證用戶輸入的參數(shù)合法性了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI