Маршрутизатор Linux для одного приложения с использованием iptables

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[@]}"

(Использование массива лучше, чем объединение значений в строку, поскольку при этом сохраняются значения с пробелами.)

1
22.11.2017, 10:41
1 ответ

Creo que todo lo que te falta es el enrutador:

iptables -t nat -A POSTROUTING -j MASQUERADE
1
27.01.2020, 23:44

Теги

Похожие вопросы