|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
sh su UNIX SUN SOLARIS
ho la necessita di effettuare un confronto lessicografico fra stringhe in uno script da fare girare su Unix Sun... sotto IBM bastava fare
stringa1 /> stringa2 su Sun non funzia ![]() |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Non so, solaris ha la bash?
Quote:
|
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
certo!
![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
dirai tu...un bel man bash??
![]() |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Quote:
![]() Intendi dire che hai risolto, vero? |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Questa è la porzione dello script
if [ "$token" /> "$paletto" -a -f $token ] se metto solo > non funziona... |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Mi sa che il problema e' in quei -a -f ...
Prova cosi': if [ [ -a -f $token ] ] then if [ [ "$token" > "$paletto" ] ] ... |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
ma -a sta per AND logico...
|
![]() |
![]() |
![]() |
#9 | ||
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Quote:
![]() ![]() Quote:
|
||
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
nei test??
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
These are similar to the Bash comparison operators && and ||, used within double brackets. [[ condition1 && condition2 ]]
The -o and -a operators work with the test command or occur within single test brackets. if [ "$exp1" -a "$exp2" ] http://tldp.org/LDP/abs/html/comparison-ops.html ho trovato l'errore l'operatore è \> non /> ... |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
un cavolo!! non funge!!!
Codice:
#!/bin/sh a="aaab" b="aaaa" if [ "$a" \> "$b" ] then echo cavolo! else echo e allora! fi dove cavol sbaglio? |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Dec 2000
Messaggi: 1204
|
Io scribacchio un po' con sh sotto SUN e non mi sono mai imbattuto in
/> o \> che significato deve avere? Cosa intendi per 'confronto lessicografico' ?? UPDATE: vi test Codice:
#!/bin/sh a="aaaa" b="aaab" if [ "$a" > "$b" ] then echo ok else echo ko fi exit 0 Codice:
>./test ok > ![]() |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
bhè si intende se una stringa è maggiore di un altra... in pratica come un elenco di nomi ordinati alfabeticamnte:
"Rossi" è minore di "Rosso" nell'esempio infatti sbaglia! "aaaa" è minore di "aaab" |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Ribadisco che su IBM AIX funziona benissimo...
|
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Dec 2000
Messaggi: 1204
|
Allora prova con nawk, se ti va...
Codice:
#!/bin/sh /usr/bin/nawk 'BEGIN { a="Rossi" b="Rosso" if (a < b) print "OK" else print "KO" }' Codice:
>fuffa OK > ![]() |
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Grazie comunque
![]() ![]() |
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Ho risolto così:
Codice:
#!/bin/sh a="aaab" b="aaaa" prova=`echo $a $b | awk '{print ($1 > $2)}'` echo $prova if [ $prova = 1 ] then echo cavolo! else echo carota! fi |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:57.