Perché quando digito in bash: if [ false ]; then echo 'ok'; fi;
Ottiene la stringa ok
come risultato? Il risultato simile che posso ottenere anche quando si utilizza variabile: ok=false; if [ $ok ]; then echo 'ok'; fi;
Perché se [falso]; quindi echo 'ok'; fi; stampa ok?
risposta
if [ false ]
equivale a if [ -n "false" ]
- sta testando la lunghezza della stringa. Se stai provando a testare il codice di uscita di /bin/false
, usa if false
(no [
, che per molte, ma non tutte, le moderne shell è una shell costruita all'incirca equivalente a /usr/bin/[
o /usr/bin/test
).
Questo lo spiega meglio delle altre risposte, ma '[' sta per essere il comando incorporato, non il binario esterno. – jordanm
@jordanm Vero per alcune shell, ma non tutte ... Anche se, immagino, l'OP è stato taggato con 'bash' per il quale' ['è interno ... Chiarito la risposta un po ', a prescindere. – twalberg
true
e false
non sono builtin parole chiave per booleano in bash stesso modo lo sono per altri linguaggi di programmazione
È possibile simulare la prova del vero falsa condizione di una variabile/come segue:
cond1="true"
cond2="false"
if [ "$cond1" = "true" ]; then
echo "First condition is true"
fi
if [ "$cond2" = "false" ]; then
echo "Second condition is false"
fi
Quando si sta facendo:
if [ false ]
si traduce implicitamente
if [ -n "false" ]
Qualora il -n
denota "test se questo ha lunghezza maggiore di 0: logicamente vera se è così, logicamente falsa altrimenti"
parte - true
e false
effettivamente fare qualcosa, ma sono i comandi:
man true
man false
Per saperne di più su di loro.
- 1. "Se ogni telefono risponde a OK Google [...]",
- 2. Backbone: 100 + Visualizzazioni ok?
- 3. Maven: compila OK, pacchetto OK, compile + pacchetto fallisce
- 4. Certificato peer SSL o chiave remota SSH non OK OK
- 5. Modo Python per `return (valore == 'ok')? 'Ok': 'nok' `
- 6. RSolr :: Errore :: InvalidRubyResponse - 200 OK
- 7. Perché "$ temp = 0; echo ~ $ temp; "stampa -1?
- 8. HttpWebRequest invia 200 OK automaticamente?
- 9. Fabbriche "Singleton", ok o cattive?
- 10. Segnala CPU come sempre ok con Riemann
- 11. È ok utilizzare google.setOnLoadCallback più volte?
- 12. È OK usare == su enumerazione in Java?
- 13. È ok a static_cast un puntatore * vuoto
- 14. Perché non posso I .invokeExact() qui, anche se MethodType è OK?
- 15. Ok per rilasciare un puntatore thats nil?
- 16. echo "-n" non stampa -n?
- 17. OK/Annulla ordine pulsanti in ICS
- 18. È OK avere oggetti DAO singleton?
- 19. Mockito dà UnfinishedVerificationException quando sembra OK
- 20. Contrassegnare la differenza come ok in vimdiff
- 21. Le funzioni di sistema() C sono ok?
- 22. Android: Disabilitare DialogFragment OK/Cancel pulsanti
- 23. Come aggiungere intestazioni multiple con ok Http
- 24. Invito di Facebook in PhoneGap restituisce OK
- 25. Android App integrato con OK Google
- 26. Come eseguire l'azione su OK di JOptionPane.showMessageDialog
- 27. Ember.js: OK per evitare this.get ('attr')?
- 28. Controllo account utente sul pulsante OK
- 29. Imposta i pulsanti "ok" e "cancella" predefiniti
- 30. E 'necessario "rubygems" `return` false` ok?
Mi dispiace, mio errore. –