Indice del forum Emilia Romagna Linux Users Group
i forum di ERLUG
torna alla home page di ERLUG
 
 Forum SubscriptionsForum Subscriptions   FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

Bash script

 
Nuovo argomento   Rispondi    Indice del forum -> ERLUG
Precedente :: Successivo  
Autore Messaggio
Mario Vittorio Guenzi
Ospite





MessaggioInviato: Gio 30 Gen 2020 12:41    Oggetto: Bash script Rispondi citando

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





MessaggioInviato: Gio 30 Gen 2020 12:48    Oggetto: Bash script Rispondi citando

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





MessaggioInviato: Gio 30 Gen 2020 13:26    Oggetto: Bash script Rispondi citando

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





MessaggioInviato: Gio 30 Gen 2020 13:32    Oggetto: Bash script Rispondi citando

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





MessaggioInviato: Gio 30 Gen 2020 13:34    Oggetto: Bash script Rispondi citando

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
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> ERLUG Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
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


Powered by phpBB © 2001, 2005 phpBB Group
phpbb.it

torna alla home page di ERLUG
Per informazioni o problemi, contattare info@erlug.linux.it.
La connettività per questo sito e per gli altri nostri servizi è offerta da Ehiweb.it