Re: [bash]: strano problema con case

2009-02-03 Per discussione Antonio Macchi
$ echo "x=21; case $x in +([0-9])) echo "x is an integer";; esac" >> hai aperto " per inserire la stringa che deve essere spedito al file, ma lo hai chiuso in anticipo."x is an integer" risulta essere un programma e hai ragione per meta' l'errore di non aver "escapizzato" le virgolette c

Re: [bash]: strano problema con case

2009-02-03 Per discussione David Paleino
On Tue, 3 Feb 2009 13:43:53 +0100, gollum1 wrote: > echo "x=21; case $x in +([0-9])) echo /"x is an integer/";; esac" >> test.sh ^^ L'escaping si fa con \... David -- . ''`. Debian maintainer | http://wiki.debian.org/DavidPaleino : :'

Re: [bash]: strano problema con case

2009-02-03 Per discussione gollum1
Il martedì 3 febbraio 2009 08:58:11 Flavio ha scritto: > sto scrivendo uno script in bash, ed ho trovato uno stranissimo > comportamento (bug??): > > $ echo $SHELL > /bin/bash > $ x=21; case $x in +([0-9])) echo "x is an integer";; esac > x is an integer > $ echo "x=21; case $x in +([0-9])) echo "x

Re: [bash]: strano problema con case

2009-02-03 Per discussione Flavio
On Tuesday 03 February 2009 11:29:42 Antonio Macchi wrote: > perche' metti quelle parentesi tra [0-9]? > cosa volevi testare di preciso? il test dovrebbe fare il match per una o più cifre, in pratica un numero intero. La sintassi è presa da man bash, dove dice che il pattern di un case viene sot

Re: [bash]: strano problema con case

2009-02-03 Per discussione Antonio Macchi
perche' metti quelle parentesi tra [0-9]? cosa volevi testare di preciso? se vuoi che la variabile contenga solo numeri e al massimo un + all'inizio, potresti usare una espressione regolare... $ a=21; [[ $a =~ "^\+?[0-9]+$" ]] && echo "x e' un intero positivo" ...o al limite un case combin

[bash]: strano problema con case

2009-02-02 Per discussione Flavio
sto scrivendo uno script in bash, ed ho trovato uno stranissimo comportamento (bug??): $ echo $SHELL /bin/bash $ x=21; case $x in +([0-9])) echo "x is an integer";; esac x is an integer $ echo "x=21; case $x in +([0-9])) echo "x is an integer";; esac" >> test.sh $ /bin/bash test.sh test.sh: line