The UNIX and Linux Forums  
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.

Go Back   UNIX e Linux Forum > Inizio Forum > UNIX for Dummies Domande & Risposte
.
google unix.com



UNIX for Dummies Domande & Risposte Se non sei sicuro dove pubblicare un UNIX o Linux domanda, posta da qui. Tutti i neofiti di Linux e UNIX benvenuto!

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
Come dando due condizioni SE ..? RRVARMA Shell scripting e di programmazione 6 04-25-2008 09:33 AM
o ridurre le condizioni hitmansilentass Shell scripting e di programmazione 8 05-03-2007 05:27 PM
se in condizioni più / poi grandtheftander UNIX for Dummies Domande & Risposte 4 07-21-2006 01:58 PM
dichiarazione, se le due condizioni cin2000 Shell scripting e di programmazione 1 01-23-2006 03:21 PM
dichiarazione, se le due condizioni-e, & & yongho Shell scripting e di programmazione 16 06-14-2005 04:46 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 07-28-2008
Borobudur borobudur is offline
Utente Registrato
  
 

Iscriviti Data: luglio 2008
Località: Ginevra, Svizzera
Interventi: 23
Due condizioni, se in una dichiarazione

Sono totalmente nuova con bash programmazione e non mi è come mettere due condizioni in una dichiarazione di se. Il mio codice è simile a questa:
Codice:
h=`date +%k`
if [ [ $((h>9)) ] && [ $((h<21)) ] ]; then
h è di 10 $, ma non ho ricevuto nella mia dichiarazione se. Cosa c'è di sbagliato?
  #2 (permalink)  
Old 07-28-2008
epoca era is offline Forum Advisor  
Herder di Inutile Gatti (Su sabbatico)
  
 

Iscriviti Data: marzo 2008
Ubicazione: / ci / è / solo / bin / sh
Interventi: 3.652
La shell ha un fantastico set di sintassi alternative per Condizionali.

Il [non è un delimitatore tradizionali, ma il nome di un comando. Il modo di utilizzarlo per molteplici espressioni come questa:

Codice:
if [ "$h" -gt 9 ] && [ "$h" -lt 21 ]; then
  ...
fi
Un po 'più recenti (che è, post-1979 o così ...) la sintassi è

Codice:
if [ "$h" -gt 9 -a "$h" -lt 21 ]; then
  ...
fi
$((...)) La sintassi è molto più recente, e introduce una corretta aritmetica (compresi i> e <operatori), ma non è direttamente utilizzabile come condizione. E 'semplicemente si espande a 0 per falso e 1 per vero. Ma, ovviamente, si possono combinare:

Codice:
if [ $((h > 9 && h < 21)) == 1 ]; then
  ...
fi
Infine, vi è la [[... ]] Condizionale, che è probabilmente ciò che siete dopo:

Codice:
if [[ $h > 9 ]] && [[ $h < 21 ]]; then
  ...
fi
I caratteri che compongono il [[delimitatore non possono essere separate da spazi bianchi (al meglio delle mie conoscenze).
  #3 (permalink)  
Old 07-28-2008
krishmaths krishmaths is offline
Utente Registrato
  
 

Join Date: Sep 2006
Località: Mysore, India
Interventi: 191
Prova questo:

Codice:
if [ $h -gt 9 -a $h -lt 21 ]; then
  #4 (permalink)  
Old 07-28-2008
Borobudur borobudur is offline
Utente Registrato
  
 

Iscriviti Data: luglio 2008
Località: Ginevra, Svizzera
Interventi: 23
Oh boy! I think I'm a giovani per questo. I'm from Java generazione, bash sembra essere molto difficile.

Questi due sembrano funzionare. Che è davvero la stessa cosa?

Codice:
if [ $h -gt 9 -a $h -lt 21 ]; then
Codice:
if [ "$h" -gt 9 ] && [ "$h" -lt 21 ]; then
  #5 (permalink)  
Old 07-28-2008
epoca era is offline Forum Advisor  
Herder di Inutile Gatti (Su sabbatico)
  
 

Iscriviti Data: marzo 2008
Ubicazione: / ci / è / solo / bin / sh
Interventi: 3.652
Le virgolette sono soprattutto per la sicurezza (buona abitudine in caso $ h finisce contenente una stringa vuota per errore, per esempio) e, in teoria, i & & variante potrebbe creare processi in cui i due esterni a un creerebbe soltanto uno. (E 'la teoria, perché [è probabilmente gestite internamente in moderni serbatoi, in modo non vi è alcun processo esterni coinvolti).

Gli script di shell non sono analizzati molto, la sintassi è più superficiale rispetto a molti altri linguaggi di scripting e questo crea alcune complicazioni, ma anche contribuisce a rendere il guscio estremamente versatile. La mancanza di standard, built-in aritmetica operatori fin dall'inizio è un'altra fonte di complessità, in questo caso. POSIX i tentativi di risolvere alcune delle questioni, ma storicamente, si sono sviluppate varie shell diverse estensioni che hanno poi creato, per così dire, ancora più modi diversi per la pelle di un gatto.
  #6 (permalink)  
Old 07-28-2008
Borobudur borobudur is offline
Utente Registrato
  
 

Iscriviti Data: luglio 2008
Località: Ginevra, Svizzera
Interventi: 23
Grazie ragazzi per il vostro aiuto!
Closed Thread

Segnalibri

Tag
se le condizioni dichiarazione

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 07:46 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0