Ho creato uno script interessante che produrrà l'output di cui ho bisogno, ma viene visualizzato solo sullo schermo, quindi devo copiare, quindi incollare i comandi per farli eseguire. Ecco la versione abbreviata del mio script:Posso usare ECHO per eseguire i comandi?
#!/bin/bash
runc=/etc/csf/csf.pl -d
for IP in `tail -400 iptext.txt`
do
cc=`geoiplookup $IP`
echo -e $runc $IP $cc | grep Algeria
echo -e $runc $IP $cc | grep Argentina
echo -e $runc $IP $cc | grep Armenia
echo -e $runc $IP $cc | grep Azerbaijan
echo -e $runc $IP $cc | grep Bolivia
echo -e $runc $IP $cc | grep Brazil
done
Va bene, quindi scorre l'elenco di indirizzi IP in iptext.txt, poi fa una ricerca su GeoIP ognuno, se (in questo esempio) ci sono due partite geoip nella lista, diciamo per l'Armenia e il Brasile, vedrò di uscita come questo per la finestra di shell:
/etc/csf/csf.pl -d 46.162.242.17 GeoIP Country Edition: AM, Armenia
/etc/csf/csf.pl -d 200.147.38.50 GeoIP Country Edition: BR, Brazil
questo è grande, ma voglio di più di una semplice uscita, io in realtà voglio il comando /etc/csf/csf.pl -d
da eseguire, e blocca (solo e solo) l'IP nelle righe che corrispondono al nome del paese, nella lista.
Ho provato varie cose con la mia conoscenza limitata dello script di shell, ma finora, niente sembra funzionare. Quindi c'è qualche opzione per ECHO mi manca che in realtà eseguirà il comando piuttosto che semplicemente stampando la linea?
devo rollback vostro inserimento di una risposta nella domanda stessa. Si prega di inviare la propria risposta o approvare uno di quelli esistenti. Nota che la tua soluzione era quasi identica alla risposta di Flo Doe. –