我想在whiptail对话框中验证用户输入正确的设备或用户输入错误。
我在谷歌上搜索了2天,却找不到任何类似的问题。
这是我的代码:
ALL_DEVICES=$(ifconfig -a | grep Ethernet | awk '{print $1}' | tr '\n' ' ' | sed -e 's/[[:space:]]*$//')
U_INPUT=$(whiptail --title "[choose]" --inputbox "Please input your device" 0 0 all 3>&1 1>&2 2>&3)
如果我回复“$ ALL_DEVICES”,我会得到:eth0 wlan0
我们假设用户输入:eth wlan0 wlan1
如何通知用户他输入正确:wlan0,但是eth和wlan1输入不正确,因为该设备不存在。
我试过这段代码:
ALL_DEVICES=$(ifconfig -a | grep Ethernet | awk '{print $1}' | tr '\n' ' ' | sed -e 's/[[:space:]]*$//')
U_INPUT=$(whiptail --title "[choose]" --inputbox "Please input your device" 0 0 3>&1 1>&2 2>&3)
arr1=("$ALL_DEVICES")
arr2=("$U_INPUT")
echo "arr1 ${arr1[@]}"
echo "arr2 ${arr2[@]}"
FOUND="echo ${arr1[*]} | grep ${arr2[*]}"
if [ "${FOUND}" != "" ]; then
echo "Valid interfaces: ${arr2[*]}"
else
echo "Invalid interfaces: ${arr2[*]}"
fi
非常感谢
答案 0 :(得分:0)
我会这样:
if (guess.isWithin(5) = randomNumber)
也许它可以更简化,但你可以阅读要做的步骤。首先查看字符串数组,查找设备,然后将其与用户输入进行比较,并撰写关于查找它的内容。最后一步是澄清是否找到了值。