The UNIX and Linux Forums  
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.

Go Back   Die UNIX-und Linux-Foren > Top Foren > UNIX for Dummies Questions & Answers
.
Google unix.com



UNIX for Dummies Questions & Answers Wenn Sie nicht sicher sind, wo Sie eine UNIX-oder Linux-Frage, post it here. Alle UNIX-und Linux-Anfänger willkommen!

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Wie giv zwei Bedingungen in IF-Anweisung ..? RRVARMA Shell Programmierung und Scripting 6 04-25-2008 09:33 AM
reduzieren oder die Bedingungen hitmansilentass Shell Programmierung und Scripting 8 05-03-2007 05:27 PM
mehrere Bedingungen in if / then grandtheftander UNIX for Dummies Questions & Answers 4 07-21-2006 01:58 PM
if-Anweisung mit zwei Bedingungen cin2000 Shell Programmierung und Scripting 1 01-23-2006 03:21 PM
if-Anweisung mit zwei Bedingungen,-e, & & yongho Shell Programmierung und Scripting 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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 07-28-2008
Borobudur borobudur is offline
Registrierte Nutzer
  
 

Join Date: Jul 2008
Ort: Genf, Schweiz
Beiträge: 23
Zwei Bedingungen in einer if-Anweisung

Ich bin völlig neu, mit bash und Programmierung I don't get it, wie man zwei Bedingungen in einer if-Anweisung. Mein Code sieht wie folgt aus:
Code:
h=`date +%k`
if [ [ $((h>9)) ] && [ $((h<21)) ] ]; then
$ h ist 10, aber ich nicht in meine if-Anweisung. Was ist hier falsch?
  #2 (permalink)  
Old 07-28-2008
Ära era is offline Forum Advisor  
Herder sinnlosen Katzen (Am Sabbatical)
  
 

Join Date: März 2008
Location: / es / ist / nur / bin / sh
Beiträge: 3652
Die Shell hat eine unheimliche Menge von Alternativen für die Syntax Bedingungen.

Das [ist keine traditionelle Trennzeichen, sondern den Namen eines Befehls. Die Art und Weise zu verwenden, für mehrere Ausdrücke ist wie folgt:

Code:
if [ "$h" -gt 9 ] && [ "$h" -lt 21 ]; then
  ...
fi
Ein etwas höher (das heißt, nach-1979 oder so ...)-Syntax ist

Code:
if [ "$h" -gt 9 -a "$h" -lt 21 ]; then
  ...
fi
Die $((...)) Syntax ist viel höher, und führt richtige Arithmetik (einschließlich der> und <Betreiber), ist aber nicht unmittelbar als Bedingung. Er baut einfach auf 0 für falsch und 1 für wahr. Aber natürlich können Sie mischen und anpassen:

Code:
if [ $((h > 9 && h < 21)) == 1 ]; then
  ...
fi
Schließlich gibt es noch das [[... ]] Abhängig, die ist wahrscheinlich das, was Sie nach:

Code:
if [[ $h > 9 ]] && [[ $h < 21 ]]; then
  ...
fi
Die Zeichen, die die [[Delimiter nicht durch Leerzeichen voneinander getrennt werden (nach meinem besten Wissen).
  #3 (permalink)  
Old 07-28-2008
krishmaths krishmaths is offline
Registrierte Nutzer
  
 

Join Date: Sep 2006
Lage: Mysore, Indien
Beiträge: 191
Versuchen Sie folgendes:

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

Join Date: Jul 2008
Ort: Genf, Schweiz
Beiträge: 23
Oh boy! Ich glaube, ich bin zu jung für diese. Ich komme aus der Java-Generation, bash offenbar schwierig.

Diese beiden zu funktionieren scheint. Ist das wirklich das gleiche?

Code:
if [ $h -gt 9 -a $h -lt 21 ]; then
Code:
if [ "$h" -gt 9 ] && [ "$h" -lt 21 ]; then
  #5 (permalink)  
Old 07-28-2008
Ära era is offline Forum Advisor  
Herder sinnlosen Katzen (Am Sabbatical)
  
 

Join Date: März 2008
Location: / es / ist / nur / bin / sh
Beiträge: 3652
Die Anführungszeichen sind vor allem für die Sicherheit (gute Angewohnheit bei $ h endet mit einem leeren String von Fehler, zum Beispiel) und in der Theorie, die & & Variante könnte zwei externe Prozesse, bei denen ein nur erstellen. (Es ist Theorie, da [ist wahrscheinlich intern in Modernen Muscheln, so gibt es keine externen Prozess beteiligt.)

Shell-Skripte werden nicht geparst viel, die Syntax ist flach als in vielen anderen Skript-Sprachen und das schafft einige Komplikationen, aber auch hilft, die Schale sehr vielseitig. Der Mangel an Standardisierung, built-in arithmetischen Operatoren von Anfang an ist eine weitere Quelle der Komplexität in diesem Fall. POSIX Versuche, um einige der Fragen, sondern historisch, verschiedene Muscheln entwickelt haben verschiedene Erweiterungen, die dann, wie sie waren, noch mehr verschiedene Möglichkeiten für die Haut eine Katze.
  #6 (permalink)  
Old 07-28-2008
Borobudur borobudur is offline
Registrierte Nutzer
  
 

Join Date: Jul 2008
Ort: Genf, Schweiz
Beiträge: 23
Ich danke euch für eure Hilfe!
Closed Thread

Lesezeichen

Tags
Bedingungen if-Anweisung

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 05:24 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0