相关疑难解决方法(0)

如何测试一个项目是否在 bash 数组中?

一个简单脚本的帮助

#!/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(我使用数组),然后简单地给我,是存在或否。我不知道如何将数组与单个变量进行比较。

bash array

16
推荐指数
5
解决办法
11万
查看次数

while 检查变量是否在数组 bash 中

我的 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,它会接受它作为有效的网络接口,事实并非如此,我想排除它。我想我可以执行不包括所有数字用户输入的额外检查,但我想知道我的错误是什么?

linux bash network-interface

1
推荐指数
1
解决办法
5280
查看次数

标签 统计

bash ×2

array ×1

linux ×1

network-interface ×1