Добавлены эти правила и всегда блокируются при попытке обновления / установки:
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 80 -j ACCEPT
Есть идеи?
{{ 1}}Говорят, что позиционные параметры не являются массивом.
И способ, который существует для их установки, — через set
. Никакому другому массиву это не нужно.
$ set -- one two t33 f44
$ printf '%s\n' "$@"
one
two
t33
f44
Но, по крайней мере, в bash (и ksh и zsh )их можно было выбрать так же просто:
$ set -- one two t33 f44
$ echo "${@:2:1}"
two
$ echo "${@:2:2}"
two t33
$@
это не массив :это просто список аргументов. В bash вы можете создать массив, инициализировать его значениями из $@
, а затем использовать индексацию :
declare -a foo=($@)
echo ${foo[2]}
Индексы массива начинаются с 0, поэтому в приведенном выше примере сценарий выводит третий аргумент.
По сути, вы не можете. Дело в том, что $*
и $@
не являются массивами ; они простые переменные . Таким образом, невозможно их проиндексировать.
Их значения — это просто строки, определенные немного по-разному. $1
, $2
и т. д. предоставляют доступ к отдельным компонентам.