View Full Version : [script bash] confronto tra due numeri
Ciao a tutti. Sto iniziando da poco ad usare gli script bash da ubuntu e mi sto trovando in difficoltà. Il mio script deve semplicemente(per più esperti di me) scrivere in output il risultato del confronto tra due numeri (maggiore o minore).
#!/bin/sh
echo "valore primo e $1"
echo "valore secondo e $2"
if [test $1 -lt $2]; then
echo " $1 minore $2 "
else
echo " $2 maggiore $1 "
fi
io da terminale do i due numeri :
./script.sh 4 5
in output mi da l errore : test not found però mi da correttamente 5 ($2) maggiore di 4($1).
qualcuno saprebbe aiutarmi ???? grazie in anticipo.
#!/bin/sh
echo "valore primo e $1"
echo "valore secondo e $2"
if [ $1 -lt $2]; then
echo " $1 minore $2 "
else
echo " $2 maggiore $1 "
fi
Oppure anche
#!/bin/sh
echo "valore primo e $1"
echo "valore secondo e $2"
if $( test $1 -lt $2); then
echo " $1 minore $2 "
else
echo " $2 maggiore $1 "
fi
con le quadre ( [ 41 -lt $2] ) utilizzi le funzionalita' interne di bash, mentre test e' un eseguibile, che offre funzionalita' analoghe, per cui se lo usi devi metterlo all'interno di $() per testarne il valore di ritorno
#!/bin/sh
echo "valore primo e $1"
echo "valore secondo e $2"
if [ $1 -lt $2]; then
echo " $1 minore $2 "
else
echo " $2 maggiore $1 "
fi
se io faccio ./confronto.sh 4 1
l output me lo da giusto come hai fatto tu però prima mi dice :
./confronto.sh: 8: [4: not found
4 maggiore 1
se io faccio ./confronto.sh 4 1
l output me lo da giusto come hai fatto tu però prima mi dice :
./confronto.sh: 8: [4: not found
4 maggiore 1
Hai lasciato lo spazio tra la [ e il $1?
Ciao a tutti. Sto iniziando da poco ad usare gli script bash da ubuntu e mi sto trovando in difficoltà. Il mio script deve semplicemente(per più esperti di me) scrivere in output il risultato del confronto tra due numeri (maggiore o minore).
#!/bin/sh
echo "valore primo e $1"
echo "valore secondo e $2"
if [test $1 -lt $2]; then
echo " $1 minore $2 "
else
echo " $2 maggiore $1 "
fi
io da terminale do i due numeri :
./script.sh 4 5
in output mi da l errore : test not found però mi da correttamente 5 ($2) maggiore di 4($1).
qualcuno saprebbe aiutarmi ???? grazie in anticipo.
nn c'entra molto con bash...a cui hanno già risposto
ma
$1 minore $2 = $2 maggiore $1 ;);)
Hai lasciato lo spazio tra la [ e il $1?
si bisognava lasciare lo spazio anke tra $2 e ].
#!/bin/sh
echo "valore primo e $1"
echo "valore secondo e $2"
if [ $1 -lt $2 ]; then
echo "$1 minore $2 "
else
echo "$1 maggiore $2 "
fi
funziona ed ho cambiato anke il secondo echo come giustamente mi diceva zuper.
Se invece voglio usare la variabile test devo farlo in questo modo:
#!/bin/sh
echo "valore primo e $1"
echo "valore secondo e $2"
if test $1 -lt $2 ; then
echo "$1 minore $2 "
else
echo "$1 maggiore $2 "
fi
grazie a tutti per l aiuto.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.