我想验证用户是否在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)
如果我 echo "$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
非常感谢