一个简单脚本的帮助
#!/bin/bash
array1=(
prova1
prova2
slack64
)
a="slack64"
b="ab"
if [ $a = $b ]
then
echo "$a = $b : a is equal to b"
else
echo "$a = $b: a is not equal to b"
fi
Run Code Online (Sandbox Code Playgroud)
这个脚本根本不起作用,我想要一个脚本来检查列表中是否存在 slack64(我使用数组),然后简单地给我,是存在或否。我不知道如何将数组与单个变量进行比较。
我的 while 循环检查中有一个错误。我正在检查用户输入是否是有效的用户界面。这是我的代码:
#!/bin/bash
net_array=()
for iface in $(ifconfig | cut -d ' ' -f1| tr ':' '\n' | awk NF)
do
net_array+=("$iface")
done
unset "net_array[${#net_array[@]}-1]"
# Network Interface selection
printf "\nPlease select the network interface you want to use:\n"
read -r user_iface
while ! [[ "${net_array[@]}" =~ $user_iface ]]; do # check if the user input is valid
echo "Please enter a valid network interface:"
read -r user_iface
done
Run Code Online (Sandbox Code Playgroud)
通常,此代码有效并检查元素是否在数组中。我的电脑有 eno1、eno2、eno3 接口,当我插入不同的东西时,比如 eno5,它再次要求我插入网络接口。
问题是,如果我只插入1,它会接受它作为有效的网络接口,事实并非如此,我想排除它。我想我可以执行不包括所有数字用户输入的额外检查,但我想知道我的错误是什么?