Portál AbcLinuxu, 14. července 2025 13:48
MAC="1 2 3 4 5" IP="5 4 3 2 1" for x in ${MAC}; do iptables -A blokuj -m mac --mac-source ${x} -s ${IP} -i eth1 -j ACCEPT" doneTakhle to samozrejme nefunguje. Zkousel sem uz toho hodne, ale nic nevedlo k cili. Porad se mi nedari zajistit, aby se v cyklu provadely obe promenne. Takhle to nepujde, to je mi jasne. Mohl by mi nekdo poradit? Dekuji
#!/bin/bash while read MAC IP; do iptables -A blokuj -m mac --mac-source ${MAC} -s ${IP} -i eth1 -j ACCEPT done <<EOF MAC1 IP1 MAC2 IP2 MAC3 IP3 . . . EOFa jinak - man bash, /<<[ENTER]
list=(MAC=IP MAC=IP MAC=IP ...)a parsovat položky mac=${prvek%=*}, ip=${prvek#*=}.
mac=(1 2 3 4 5) ip=(5 4 3 2 1) for ((i=0; i<${#mac[*]}; i++)); do echo ${ip[i]} ${mac[i]}; doneDetaily viz v bash(1), sekce Arrays, a v seriálu o bashi, který tu vyšel.
man bash
. :o)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.