func {1..5}
будет эквивалентно func 1 2 3 4 5
.
В общем, список слов в операторе for аналогичен любому списку слов в команде, поэтому вы можете просто заменить цикл одним вызовом команды, любым списком, который вы используемые там перемещены в аргументы команды.
Кроме того, вы можете использовать несколько раскрытий скобок вместе :{1..5}{a..c}
, чтобы создать список1a 1b 1c 2a 2b 2c 3a 3b 3c 4a 4b 4c 5a 5b 5c
(как отдельные слова ), поэтому в показанном вами случае func {1..5}{a..c}
должно работать.
Если ваш цикл делает что-то более сложное для создания аргументов финальной команды, вы можете использовать массив для их сбора (в Bash/ksh/zsh ). Предполагая, что у нас есть generate_arg
, который нужно запустить для получения аргументов дляfunc
:
args=()
for i in {1..5}; do
args+=( "$(generate_arg "$i")" )
done
func "${args[@]}"
(Использование массива лучше, чем объединение значений в строку, поскольку при этом сохраняются значения с пробелами.)
Creo que todo lo que te falta es el enrutador:
iptables -t nat -A POSTROUTING -j MASQUERADE