У меня есть ниже сценарий:массив в Баш скрипт
for ((i=0; i <= (${#arr1[@]} - 1); i++)); do
if [[ ${arr1[i]} > 100 ]]; then
echo "=> x"
iptables -A INPUT -s 192.168.162.1 -j DROP
exit
else
echo "=> y"
fi
done
В моем массиве, ни один элемент> 100, все выходные данные должны быть «=> у». когда arr1[i]=1
, все в порядке. выход: «=> у» Но когда arr1[i]=5
или что-то не один, у него есть проблемы, выход «=> х»
Я думаю, что моя проблема здесь if [[ ${arr1[i]} > 100 ]]
но я не знаю, как изменить его. :(
Помоги мне это исправить, пожалуйста, спасибо
Первый не представляет проблемы. Из 'man bash': *« Нижний индекс рассматривается как арифметическое выражение «*. – tom
>: -gt. Итак, с> =, <, <=, == как ??? Большое спасибо – TrungTrung
@TrungTrung Дополнительную информацию об условных выражениях можно найти здесь (http://www.gnu.org/software/bash/manual/bashref.html#Bash-Conditional-Expressions). – devnull