chiccop96
Posts: 6
Joined: Thu Apr 26, 2018 1:09 pm

Problema Script

Thu Apr 26, 2018 1:14 pm

Ciao a tutti,

sono alle prime armi con il raspberry e non riesco a fare partire questo script:

Code: Select all

#!/bin/bash
#=================================================================
# Script Variables Settings
wlan='wlan0'
gateway='8.8.4.4'
alias ifup='/sbin/ifup'
alias ifdown='/sbin/ifdown'
alias ifconfig='/sbin/ifconfig'
# Only send two pings, sending output to /dev/null as we don't want to fill logs on our sd card. 
# If you want to force ping from your wlan0 you can connect next line and uncomment second line 
ping -c2 ${gateway} > /dev/null # ping to gateway from Wi-Fi or from Ethernet
# ping -I ${wlan} -c2 ${gateway} > /dev/null # only ping through Wi-Fi 
# If the return code from ping ($?) is not 0 (meaning there was an error)
if [ $? != 0 ]
then
ifdown --force wlan0
ifup wlan0
sleep 5
ifup wlan0;
fi
ping -I ${wlan} -c2 ${gateway} > /dev/null
echo " - Auto Reconnect Wi-Fi Status for $wlan Script Ended ";
Se provo a eseguirlo nel terminal mi riporta questo errore:

/home/pi/Scripts/check_wifi.sh: 22: /home/pi/Scripts/check_wifi.sh: Syntax error: end of file unexpected (expecting "then")


Cosa potrebbe essere?

macca
Posts: 98
Joined: Tue Oct 16, 2012 9:14 am

Re: Problema Script

Thu Apr 26, 2018 2:23 pm

Prova a mettere un punto e virgola alla fine dell'if.

chiccop96
Posts: 6
Joined: Thu Apr 26, 2018 1:09 pm

Re: Problema Script

Thu Apr 26, 2018 2:26 pm

macca wrote:
Thu Apr 26, 2018 2:23 pm
Prova a mettere un punto e virgola alla fine dell'if.
Ci ho provato ma mi da sempre lo stesso errore.

macca
Posts: 98
Joined: Tue Oct 16, 2012 9:14 am

Re: Problema Script

Thu Apr 26, 2018 3:09 pm

Ho fatto una rapida prova e mi funziona con o senza il punto e virgola, naturalmente con altri comandi. Probabilmente è qualcos'altro che non vedo.
La cosa migliore da fare e ricominciare da capo aggiungendo una riga alla volta finchè non trovi cosa causa l'errore. Parti dal blocco if then così sei sicuro che funziona fin dall'inizio, metti anche la parte else così da confermare ogni passo.

Magari metti anche un po' di spazi tra un blocco di righe e l'altro per migliorare un po' la leggibilità.

chiccop96
Posts: 6
Joined: Thu Apr 26, 2018 1:09 pm

Re: Problema Script

Fri Apr 27, 2018 9:57 am

Se metto gli spazi mi da errore della riga...

Potrebbe essere che il terminal standard è in un altro linguaggio di scrittura rispetto a quello che ho scritto sopra?

macca
Posts: 98
Joined: Tue Oct 16, 2012 9:14 am

Re: Problema Script

Fri Apr 27, 2018 12:18 pm

chiccop96 wrote: Se metto gli spazi mi da errore della riga...
Fammi capire, con uno script come questo:

Code: Select all

#!/bin/bash

touch /root/test 2> /dev/null

if [ $? != 0 ]
then
  echo "Could not create file"
else
  echo "Successfully created file"
fi

Ti da errore ?

User avatar
m3nhir
Posts: 117
Joined: Sat Mar 21, 2015 11:53 am

Re: Problema Script

Sun Jun 10, 2018 3:48 pm

Quando scrivo script in bash usando il costrutto if il punto e virgola và messo alla fine di ogni riga.
Cosi dovrebbe funzionare:

Code: Select all

if [ $? != 0 ];
then ifdown --force wlan0;
ifup wlan0;
sleep 5;
ifup wlan0;
fi
Last edited by m3nhir on Wed Jun 13, 2018 8:41 pm, edited 1 time in total.

nicolap8
Posts: 187
Joined: Mon Mar 13, 2017 9:45 pm

Re: Problema Script

Sun Jun 10, 2018 9:26 pm

m3nhir wrote:
Sun Jun 10, 2018 3:48 pm
Quando scrivo script in bash usando il costrutto if il punto e virgola và messo alla fine di ogni riga.
Cosi dovrebbe funzionare:

Code: Select all

if [ $? != 0 ];
then ifdown --force wlan0;
ifup wlan0;
sleep 5:
ifup wlan0;
fi
Risposta sbagliata. Il punto e virgola è il terminatore di istruzione ed è opzionale quando si usa come terminatore un a capo.
Leggi qua: https://unix.stackexchange.com/question ... structures

User avatar
m3nhir
Posts: 117
Joined: Sat Mar 21, 2015 11:53 am

Re: Problema Script

Wed Jun 13, 2018 8:42 pm

Sarà anche opzionale, ma non sbagliato.

nicolap8
Posts: 187
Joined: Mon Mar 13, 2017 9:45 pm

Re: Problema Script

Thu Jun 14, 2018 10:55 am

m3nhir wrote:
Wed Jun 13, 2018 8:42 pm
Sarà anche opzionale, ma non sbagliato.
I linguaggi informatici RICHIEDONO precisione estrema! Altrimenti...
Tu hai scritto " il punto e virgola và messo alla fine di ogni riga." che è il contrario di "opzionale"... quindi la tua risposta conteneva un errore molto grande!

User avatar
m3nhir
Posts: 117
Joined: Sat Mar 21, 2015 11:53 am

Re: Problema Script

Fri Jun 15, 2018 9:26 pm

nicolap8 wrote:
Thu Jun 14, 2018 10:55 am
m3nhir wrote:
Wed Jun 13, 2018 8:42 pm
Sarà anche opzionale, ma non sbagliato.
I linguaggi informatici RICHIEDONO precisione estrema! Altrimenti...
Tu hai scritto " il punto e virgola và messo alla fine di ogni riga." che è il contrario di "opzionale"... quindi la tua risposta conteneva un errore molto grande!
Pazienza. Vorra dire che mi terrò i miei script (che funzionano) con questo "Errore molto grande"

User avatar
m3nhir
Posts: 117
Joined: Sat Mar 21, 2015 11:53 am

Re: Problema Script

Fri Jun 15, 2018 9:30 pm

@chiccop96
Nello script che hai postato c'è un alias "ifconfig" che però non ritrovo nel resto del testo dello script stesso.
E possibile che tu abbia postato solo una parte o omesso qualche riga di codice, o semplicemente non lo hai usato?

Return to “Italiano”

Who is online

Users browsing this forum: No registered users and 1 guest