Precedente :: Successivo |
Autore |
Messaggio |
Mario Vittorio Guenzi Ospite
|
Inviato: Gio 30 Gen 2020 12:41 Oggetto: Bash script |
|
|
Buongiorno a tutti,
sto scrivendo uno scritp per cominciare a provare nftables ma non ne
vengo fuori.
lo script e' questo:
#!/bin/bash -e
NFT="`whereis -b nft | cut -d \" \" -f 2`"
echo set kernel parameters
### kernel parameters
echo 1 > /proc/sys/net/ipv4/ip_forward
bla
bla
bla
echo kernel parameters loaded"
for i in '$NFT list tables | awk '{print $2}''
do
echo "Flushing ${i}"
$NFT flush table ${i}
for j in '$NFT list table ${i} grep chain | awk '{print $2}''
do
echo "Deleting chain ${j} from table ${i}"
$NFT delete chain ${i} ${j}
done
echo "Deleting ${i}"
$NFT delete table ${i}
done
echo -e "$RED Firewall completely stopped! WARNING: THIS HOST HAS NO
FIREWALL RUNNING."
exit 0
fi
Ma quando lo lancio mi da questo errore:
Flushing $NFT list tables | awk {
<cmdline>:1:13-13: Error: syntax error, unexpected '$', expecting string
flush table $NFT list tables | awk {
Ho cercato in Internet per ogni dove (credo) ma non ho trovato risposte
e non riesco a capire cosa accidenti sto sbagliando, il bash --version
restituisce GNU bash, versione 4.4.12(1)-release (x86_64-pc-linux-gnu)
la distro e' una ascii
Grazie in anticipo a chi vorra' dirmi che bestiata non vedo e cordiali
saluti.
--
Mario Vittorio Guenzi
E-mail jclark@xxxxxx.xyz
Si vis pacem, para bellum |
|
Top |
|
|
Davide Brini Ospite
|
Inviato: Gio 30 Gen 2020 12:48 Oggetto: Bash script |
|
|
On Wed, 29 Jan 2020 12:29:22 +0100, Mario Vittorio Guenzi
<jclark@xxxxxx.xyz> wrote:
Citazione: | for i in '$NFT list tables | awk '{print $2}''
|
Non si possono annidare gli apici singoli, probabilmente ciò che volevi era
for i in `$NFT list tables | awk '{print $2}'`
o meglio ancora
for i in $($NFT list tables | awk '{print $2}')
o ancora
$NFT list tables | awk '{print $2}' | while IFS= read -r i; do
... |
|
Top |
|
|
Mario Vittorio Guenzi Ospite
|
Inviato: Gio 30 Gen 2020 13:26 Oggetto: Bash script |
|
|
Il 29/01/20 12:37, Davide Brini ha scritto:
Citazione: | On Wed, 29 Jan 2020 12:29:22 +0100, Mario Vittorio Guenzi
<jclark@xxxxxx.xyz> wrote:
Citazione: | for i in '$NFT list tables | awk '{print $2}''
|
Non si possono annidare gli apici singoli, probabilmente ciò che volevi era
for i in `$NFT list tables | awk '{print $2}'`
o meglio ancora
for i in $($NFT list tables | awk '{print $2}')
o ancora
$NFT list tables | awk '{print $2}' | while IFS= read -r i; do
|
per prima cosa grazie mille,
ma il risultato con tutti e tre i metodi non cambia o meglio cambia
l'errore
Flushing inet
<cmdline>:1:17-17: Error: syntax error, unexpected newline, expecting string
flush table inet
^
_________________
Mario Vittorio Guenzi
E-mail jclark@xxxxxx.xyz
Si vis pacem, para bellum |
|
Top |
|
|
Davide Brini Ospite
|
Inviato: Gio 30 Gen 2020 13:32 Oggetto: Bash script |
|
|
On Wed, 29 Jan 2020 13:14:33 +0100, Mario Vittorio Guenzi
<jclark@xxxxxx.xyz> wrote:
Citazione: | per prima cosa grazie mille,
ma il risultato con tutti e tre i metodi non cambia o meglio cambia
l'errore
Flushing inet
<cmdline>:1:17-17: Error: syntax error, unexpected newline, expecting
string flush table inet
|
Adesso che guardo meglio hai lo stesso errore anche qualche riga più in
basso, nella riga
for j in '$NFT list table ${i} grep chain | awk '{print $2}''
Non so se è quello, ma sicuramente è da correggere. |
|
Top |
|
|
Davide Brini Ospite
|
Inviato: Gio 30 Gen 2020 13:34 Oggetto: Bash script |
|
|
On Wed, 29 Jan 2020 13:20:30 +0100, Davide Brini <db72@xxxxxx.xyz> wrote:
Citazione: | On Wed, 29 Jan 2020 13:14:33 +0100, Mario Vittorio Guenzi
<jclark@xxxxxx.xyz> wrote:
Citazione: | per prima cosa grazie mille,
ma il risultato con tutti e tre i metodi non cambia o meglio cambia
l'errore
Flushing inet
<cmdline>:1:17-17: Error: syntax error, unexpected newline, expecting
string flush table inet
|
Adesso che guardo meglio hai lo stesso errore anche qualche riga più in
basso, nella riga
for j in '$NFT list table ${i} grep chain | awk '{print $2}''
Non so se è quello, ma sicuramente è da correggere.
|
Poi suppongo che nella riga del for i ciò che devi prendere con awk è $3
(nome della tabella) non $2.
Poi nella riga del for j ci vuole un | prima del grep.
Poi forse anche altre cose, non ho approfondito.
Ciao! |
|
Top |
|
|
|
|
Non puoi inserire nuovi argomenti Non puoi rispondere a nessun argomento Non puoi modificare i tuoi messaggi Non puoi cancellare i tuoi messaggi Non puoi votare nei sondaggi
|
|