PDA

Visualizza la versione completa : bash: eliminare passaggio variabili


alex86
07-12-2004, 00:44
..scusate per il titolo lungo ma non sapevo ke altro scrivere :D

allora..dò subito il codice e spiego il problema:


select_options()
{
ans="N"
while [ "$ans" != "Y" ]; do
echo "*******************************************"
echo "* *"
echo $"* Please select your ISP Settings *"
echo "* *"
echo "*******************************************"
echo
echo $" Country/ISP VPI VCI"
cat - << EOF
Belgium, ? 8 35
Denmark, Orang 8 35
France, wanado 8 35
France, ? 8 67
Italy, ? 8 35
Netherlands, ? 8 48
Netherlands 0 35
Poland (NeoStrada) 0 35
UK, Any 0 38
US, BellSouth 8 35
Singapore Pacificnet 0 100
EOF
echo $"Please type your VPI VCI numbers (eg, 0 38 for UK)"
read VPI VCI
echo $"Please enter your ISP Login ID (eg another@hg1.btinternet.com)"
read ISP_LOGIN
echo $"Please enter your ISP Password"
read ISP_PASSWORD

echo $"Settings: "
echo " VPI / VCI : $VPI / $VCI"
echo " Login : $ISP_LOGIN"
echo " Password : $ISP_PASSWORD"
echo $"Are these correct? (Y/N)"
read ans
ans=`echo ${ans}N|tr '[a-z]' '[A-Z]'|cut -c1`
done
echo "VPI: $VPI VCI: $VCI" >> $LOGFILE
}

allora.. questa è una parte del file sh ke mi permette la connessione. Ogni volta sono costretto a mettere gli stessi dati (username pws numero ecc..). Vorrei kiedere: è possibile modificare questo file in modo ke non generi un'interrupt per la lettura da tastiera di alcune variabili?..cioè:


echo $"Please type your VPI VCI numbers (eg, 0 38 for UK)"
read VPI VCI

il read genera l'interrupt per l'iserimento di due dati che lo script salva come VPI e VCI. E' possibile modificare quella riga in modo ke anzi ke sia io a mettere 8 35 lo metta direttamente lo script?!..

sono lungo lo so..ma a volte nn mi so spiegare :D

cmq deve essere la stessa cosa per le righe


echo $"Please type your VPI VCI numbers (eg, 0 38 for UK)"
read VPI VCI
echo $"Please enter your ISP Login ID (eg another@hg1.btinternet.com)"
read ISP_LOGIN
echo $"Please enter your ISP Password"
read ISP_PASSWORD

in ordine
8 35
miauser
miapws


echo $"Are these correct? (Y/N)"
read ans
ans=`echo ${ans}N|tr '[a-z]' '[A-Z]'|cut -c1`

al posto di ans la lettera Y

:ciauz:

Maxer
07-12-2004, 01:58
ciao!
ti do solamente lo schema...
non è difficile da applicare...

consiglio: metti 3-4 variabili all'inizio dello script...
ad esempio


defaultvpi=0
defaultvci=35
defaultisplogin='user'
defaultisppassw='blablabla'


perfetto!

ora, modifica lo script così:


# il valore tra parentesi quadre, indica quello di default
echo $"Please enter your ISP Login ID (eg another@hg1.btinternet.com)[$defaultisplogin]"
read ISP_LOGIN
# controlliamo se vengono passati dati nulli...
if [ $IPS_LOGIN == '' ]
then
ISP_LOGIN=$defaultisplogin
fi


in soldoni...questo è il procedimento...
comodo anche perchè ti consente, in caso di necessità, di modificare i valodi di default!

:ciauz:

alex86
07-12-2004, 16:18
grazie..ma così devo comunque dare l'invio!..

non posso eliminare del tutto il read?! :ciauz:

Maxer
07-12-2004, 18:08
beh..
si...

ISP_LOGIN=$defaultisplogin
oppure
ISP_LOGIN="login@provider.bla"

e poi commenti le righe dove fa la richiesta e legge i dati :ciauz:

Loading