Версия POSIX sh:
for n in 1 2 3; do
src="$n"0
interface="eth$n"
for dest in 10 20 30; do
[ "$dest" = "$src" ] && continue
printf 'iptables -I FORWARD -i %s -src %s -dst %s -j DROP\n' "$interface" "192.168.$src.0/24" "192.168.$dest.0/24"
done
done
Я сделал несколько предположений о том, как вы связываете интерфейс с исходным кодом для ваших правил. Но это дает желаемый результат, который вы показали.
Использование rev
иsed
:
$ rev <<< 1234abcd | sed -E 's/(.)(.)/\2\1/g'
cdab3412
Сawk
:
$ awk -F '' '{ for(i=NF-1;i>0;i-=2) printf "%s", $i $(i+1) } END{ print "" }' <<< 1234abcd
cdab3412