Pagina 1 di 1
bash_scripting
Inviato: ven 1 lug 2005, 14:17
da Sawk
ho un problema con un case di bash.
Avevo intenzione di definire delle condizioni solo per un determinato numero di case.
Ad esempio dire che fino al caso -h mi da un output di un tipo.
Dal -e al -p un altro.
Sempre con lo stesso "case $1 in"
Ovviamente devono risultare diverse per condizioni diverse
Inviato: ven 1 lug 2005, 14:38
da TheSnowBoarder
#! /bin/bash
echo "Inserisci qualcosa "
read input
case $input in
[a-g])
echo "Hai messo dalla a fino a g"
;;
[h-z])
echo "Hai messo dalla h fino alla z"
;;
esac
Inviato: ven 1 lug 2005, 15:56
da Sawk
forse mi sono spiegato male

Io intendo dire dal parametro x al parametro y
case $1 in
-p)
echo "p"
;;
-a)
echo "a"
;;
# ora avevo intenzione di fare in modo che le prossime opzioni rispettivamente
# -c - f funzionino solo se io ho -a = 1
if [ -a = 1 ]; then
-c)
echo "c"
;;
-f)
echo "f"
;;
fi
esac
In questo modo però non va....
Inviato: ven 1 lug 2005, 16:06
da useless
non credo che si possa fare una cosa del genere. devi mettere l'if dentro a ogni case.
Inviato: ven 1 lug 2005, 16:25
da Sawk
mettere due case differenti come è possibile farlo ? Ho provato pure quello ma senza risultato sembrerebbe prenda dolo la prima ma non la seconda variabile di case
Inviato: ven 1 lug 2005, 17:14
da useless
esempio?
Inviato: ven 1 lug 2005, 17:41
da Sawk
case $1 in
-a)
echo "a"
;;
esac
case $2 in
-d)
echo "d"
;;
esac
questo script non andrà mai per chè legge solo la prima variabile $1 e non $2

Inviato: ven 1 lug 2005, 17:56
da useless
xké non dovrebbe andare? xò vengono eseguiti uno dopo l'altro.
Inviato: ven 1 lug 2005, 18:10
da TheSnowBoarder
#! /bin/bash
for flag in $@
do
case $flag in
-a)
echo "-a"
;;
-b)
echo "-b"
;;
-c)
echo "-c"
;;
esac
done
Inviato: ven 1 lug 2005, 18:51
da Sawk
useless...provare per credere

Anche io credevo che mettendo due case li prendeva..invece no

Inviato: sab 2 lug 2005, 19:04
da useless
sukko@unholycathedral ~ $ pico c.sh
sukko@unholycathedral ~ $ sh c.sh -a -d
a
d
sukko@unholycathedral ~ $
è esattamente quel che dovrebbe fare!