Portál AbcLinuxu, 28. června 2025 10:19


Dotaz: BASH script, cyklus, IP adresy

20.8.2017 23:57 darren97
BASH script, cyklus, IP adresy
Přečteno: 648×
Odpovědět | Admin
Příloha:
Ahojte, robim skript ktory spusta rsc file v Mikrotiku. IP adresy Mikrotikov mam ulozenych v subore CAPsMAN.txt Chcem aby sa mi po spusteni skriptu PC pripojil postupne na kazdy Mikrotik. Skript fungoval ak som dal jednu IP adresu do premennej. Teraz ked ich ma nacitavat postupne po jednom zo suboru, tak mi to zbehne len na prvom jednom Mikrotiku a dalej nie. Vedeli by ste poradit? Proste potrebujem aby zakazdym cyklom sa do premennej "ip" dostala dalsia ip v poradi

... CAPsMAN.txt 192.168.10.102 192.168.10.101 192.168.10.103 192.168.10.104 192.168.10.105
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Jendа avatar 21.8.2017 00:49 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: BASH script, cyklus, IP adresy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tam to funguje nějak tak, že když ti v tom skriptu něco sežere stdin, tak ti to sežere i ten vstup do while cyklu.

Upravil bych to na for address in `cat CAPsMAN.txt`; do ... ; done.
23.8.2017 11:09 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: BASH script, cyklus, IP adresy

Tuhle konstrukci moc nemusím… Spíš bych doporučil

while read addr; do
    ...
done <CAPsMAN.txt
Jendа avatar 23.8.2017 11:23 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: BASH script, cyklus, IP adresy
Vždyť to tam přesně má (resp. má tam $1, ale tipuju, že ten soubor předává jako parametr skriptu).
24.8.2017 20:33 Franta Hanzlík
Rozbalit Rozbalit vše Re: BASH script, cyklus, IP adresy
Sežráním stdin to bude, a standardním řešením je číst soubor na jiném file descriptoru. Třeba tak:
exec 3<CAPsMAN.txt		# otevření souboru na fd=3
while read -u 3 ip; do		# přes celý soubor
    ...
done
24.8.2017 20:54 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: BASH script, cyklus, IP adresy
Pokud není potřeba, aby ty vnitřní příkazy četly skutečný standardní vstup, je jednodušší jim přesměrovat vstup, aby četly např. z /dev/null.
23.8.2017 10:56 Rr
Rozbalit Rozbalit vše Re: BASH script, cyklus, IP adresy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ja pouzivam pro debug bash -x skript.sh. Tam bys mel videt co je blbe.
23.8.2017 18:03 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: BASH script, cyklus, IP adresy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Možná bude stačit jen doplnit chybějící uvozovky kolem všech proměnných.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Fuky avatar 24.8.2017 09:30 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: BASH script, cyklus, IP adresy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dokud neodstraníš nahrávání *.rsc skriptu pomocí nešifrovaného spojení a posílání hesla po síti jen tak, nemá smysl, aby jsi pokračoval dál. Vše lze obstarat s využitím SSH klíčů, proč tam ten soubor nenahráváš pomocí scp?
-- RÁMO: psí tábor , ETriatlon: Výuka plavání
25.8.2017 10:22 marek
Rozbalit Rozbalit vše Re: BASH script, cyklus, IP adresy
Odpovědět | | Sbalit | Link | Blokovat | Admin
ssh -n

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.