Иногда некоторые операционные системы могут не реагировать должным образом на сообщения icmp-host-prohibited
для TCP-соединений, поскольку классический ожидаемый способ отклонения TCP-соединения — это пакет TCP RST. (Или, может быть, некоторые брандмауэры не распознают ответ ICMP как относящийся к попытке соединения TCP и не фильтруют его?)
Метод отбраковки по умолчанию дляiptables
(и, в более широком смысле, такжеfirewalld
)— это icmp-host-prohibited
, который пытается быть методом отбраковки «один -размер -подходит для -всех», применимый в равной степени ко всем протоколы. В результате вы можете добавить собственное правило отклонения для пакетов TCP,используя тип отклонения tcp-reset
.
Синтаксис firewall-cmd
расширенного правила для отклонения TCP будет примерно таким:
firewall-cmd --zone=internal --add-rich-rule='rule protocol value="tcp" reject type="tcp-reset"'
Нет такого синтаксиса, как [x..y]
. Вы, вероятно, думаете о {x..y}
, но не работает , если x
или y
являются переменными.
Вместо этого вы можете попробовать один из них:
for((i=1;i<=$rows;i++)); do
echo "$RANDOM"
done
Или
for i in $(seq 1 "$rows"); do
echo "$RANDOM"
done
Или
i=0
while (( ++i <= rows)); do
echo "$RANDOM";
done
Или даже
i=0
until [ $i -gt $rows ]; do
echo "$RANDOM"
((i++))
done
Как указал terdon , используемый вами синтаксис неверен, и далее он привел несколько примеров циклов, которые будут работать.
Однако, чтобы напечатать $rows
количество случайных целых чисел, вы также можете использовать
jot -r "$rows"
или, что то же самое,
jot -r "$rows" 1 100
, который будет выводить $rows
случайные целые числа от 1 до 100 включительно(jot
доступен в системах BSD или в пакете athena-jot
в некоторых системах Linux ).
Или,
shuf -i 1-100 -r -n "$rows"
, который делает то же самое, что и команда jot
выше (shuf
, является частью GNU coreutils ).
Чтобы создать матрицу из $cols
умноженных на $rows
записей, вы можете использовать rs
(rs
, доступный в системах BSD, или в пакете rs
в некоторых системах Linux):
$ rows=4
$ cols=6
$ jot -r "$(( rows * cols ))" | rs "$rows" "$cols"
37 29 2 74 5 14
82 86 74 63 73 9
58 10 14 96 12 90
98 13 55 56 40 52
Обратите внимание, что нам нужно $rows * $cols
случайных чисел. Используемый здесь пример получает их из jot
, но shuf
также можно использовать (или любую другую команду, которая производит числа ).
Сzsh
:
$ eval print -C4 '$(('{1..20}', RANDOM))'
11190 17138 16156 5735
16751 13545 22647 13244
12925 11584 10984 32387
32093 8170 5305 6102
25136 30299 3944 9956
Или используя GNU shuf
для указания диапазона:
$ print -C4 $(shuf -i 0-99 -n 20)
96 55 93 33
25 7 19 60
34 51 88 46
79 13 70 98
63 37 69 41