Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
tom ha scritto:funge, ma... non c'è un modo più "elegante"?
probabilmente sì ... comunque le varie shell sono piene di bachi ... per esempio la "a" davanti alla variabile serve ad evitare che sia rilevato un errore nel caso di variabile nulla
zoros ha scritto:probabilmente sì ... comunque le varie shell sono piene di bachi ... per esempio la "a" davanti alla variabile serve ad evitare che sia rilevato un errore nel caso di variabile nulla
Non so a quali bachi ti riferisci, però quello che citi non è un bug, ma il comportamento corretto. Se tu esegui un controllo del tipo:
e quindi il comando 'test' lamenta l'assenza di un argomento. O meglio, ti dice che hai effettuato un test unario (gli hai dato un solo argomento) ma che gli hai passato un operatore binario (il test '-eq'). Lui ovviamente ti dice che, avendogli passato un unico argomento, si aspettava un operatore unario.
Spero di essermi spiegato bene ,
Emanuele
P.S. E comunque l'eventuale 'lamentela' non viene neanche dalla shell, ma dal comando 'test'. Quindi hai sbagliato proprio esempio
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
spina ha scritto:
P.S. E comunque l'eventuale 'lamentela' non viene neanche dalla shell, ma dal comando 'test'. Quindi hai sbagliato proprio esempio :lol:
test e [ sono bash built-in, il comando si trova in
/bin/test
/usr/bin/test
/usr/X11R6/bin/test
Hai ragione! Non ho controllato, ma credo che quello builtin dovrebbe comportarsi come quello in /bin/, ma a rigore a questo punto il manuale da controllare è quello della bash e non di test.
Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
zoros ha scritto:probabilmente sì ... comunque le varie shell sono piene di bachi ... per esempio la "a" davanti alla variabile serve ad evitare che sia rilevato un errore nel caso di variabile nulla
Non so a quali bachi ti riferisci, però quello che citi non è un bug, ma il comportamento corretto. ...
è scritto anche in alcuni libri di riferimento GNU/Linux che le shell sono piene di bug ... ma, si sa, i libri sono pieni di bug ... comunque l'interpretazione del testo nelle varie shell che abbiamo a disposizione fa veramente pena, basta uno spazio dimenticato e compaiono errori assurdi ... la questione di cui parlo sopra sarà anche nornale ... ma non puoi dire che è "normale" ...
spina ha scritto:Non volevo dire che le shell non hanno bachi, mi limitavo solo all'esempio riportato, visto che non è un baco .
Comunque:
zoros ha scritto:... la questione di cui parlo sopra sarà anche nornale ... ma non puoi dire che è "normale" ...
ti meriti una vecchia citazione:
I computer non fanno ciò che vuoi, ma ciò che gli dici di fare!
Emanuele
il problema non sono i computer, ma gli umani ... dopo aver faticato a capire le mille "trappole" della bash, ci sembra giusto così ... quindi andiamo avanti così ... ma non è proprio giusto così ...
zoros ha scritto:comunque l'interpretazione del testo nelle varie shell che abbiamo a disposizione fa veramente pena, basta uno spazio dimenticato e compaiono errori assurdi ... la questione di cui parlo sopra sarà anche nornale ... ma non puoi dire che è "normale" ...
pensa che nei bonifici basta uno zero in più ed invece di pagare cento euri ne pago mille, mica è normale questa cosa, le macchine dovrebbero leggerci nel pensiero e fare quello che vorremmo fare e non quello che gli diciamo di fare
spina ha scritto:Hai ragione! Non ho controllato, ma credo che quello builtin dovrebbe comportarsi come quello in /bin/, ma a rigore a questo punto il manuale da controllare è quello della bash e non di test.
Per curiosita` mia ho confrontato i due manuali, test(1) non capisce le opzioni/operatori di bash(1):
-N
-o
==
<
>
Poi da non dimenticare
/bin/[
/usr/bin/[
/usr/X11R6/bin/[
dai tempi di UNIX, altra variante di test.
masalapianta ha scritto:
pensa che nei bonifici basta uno zero in più ed invece di pagare cento euri ne pago mille, mica è normale questa cosa, le macchine dovrebbero leggerci nel pensiero e fare quello che vorremmo fare e non quello che gli diciamo di fare
Questo tipo di risposte non sono apprezzate,
soprattutto perchè inutili ai fini della risoluzione del problema.
Evitiamole.
"Stat rosa pristina nomina, nomina nuda tenemus." [ Umberto Eco - Il nome della rosa]
"Faber est suae quisque fortunae ." [ Appio Claudio Cieco]
masalapianta ha scritto:
pensa che nei bonifici basta uno zero in più ed invece di pagare cento euri ne pago mille, mica è normale questa cosa, le macchine dovrebbero leggerci nel pensiero e fare quello che vorremmo fare e non quello che gli diciamo di fare
Questo tipo di risposte non sono apprezzate,
soprattutto perchè inutili ai fini della risoluzione del problema.
Evitiamole.
se ci fosse un problema avresti ragione, ma visto che la risposta corretta al problema posto da chi ha aperto il thread era gia stata fornita, non vedo il problema; di più, esaurito quel problema, chi ha aperto il thread ne ha posto un altro ("è un bug o meno che la bash si comporti in tal maniera?"), quindi la mia risposta era volta a far capire che non si può considerare un bug il fatto che un programma faccia quel che gli dici di fare e non quello che vorresti che facesse (poi ovviamente ci può sempre essere qualcuno che, quando c'era l'offerta sull'ironia, ha preferito dirigersi al banco dei salumi, ma di questo onestamente non posso farmene carico io)