The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > UNIX voor Dummies Questions & Answers
.
google unix.com



UNIX voor Dummies Questions & Answers Als u niet zeker weet waar je een Unix-of Linux vraag, post het hier. Alle UNIX-en Linux beginners van harte welkom!!

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Hoe giv twee voorwaarden in IF verklaring ..? RRVARMA Programmeren en Shell Scripting 6 04-25-2008 09:33
verminderen of voorwaarden hitmansilentass Programmeren en Shell Scripting 8 05-03-2007 05:27 PM
meerdere voorwaarden als / dan grandtheftander UNIX voor Dummies Questions & Answers 4 07-21-2006 01:58 PM
Als verklaring met twee voorwaarden cin2000 Programmeren en Shell Scripting 1 01-23-2006 03:21 PM
Als verklaring met twee voorwaarden-e, & & yongho Programmeren en Shell 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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 07-28-2008
Borobudur borobudur is offline
Geregistreerde gebruiker
  
 

Join Date: juli 2008
Locatie: Genève, Zwitserland
Posts: 23
Twee voorwaarden in een if statement

Ik ben helemaal nieuw met bash programmeren en ik snap het niet hoe twee voorwaarden gesteld in een if-statement. Mijn code ziet er als volgt uit:
Code:
h=`date +%k`
if [ [ $((h>9)) ] && [ $((h<21)) ] ]; then
$ h is 10, maar ik snap het niet in mijn if-statement. Wat is hier verkeerd?
  #2 (permalink)  
Old 07-28-2008
tijdperk era is offline Forum Advisor  
Herder van Nutteloze Cats (On Sabbatical)
  
 

Join Datum: maart 2008
Locatie: / er / is / alleen / bin / sh
Berichten: 3652
De shell heeft een griezelige set van syntaxis alternatieven voor conditionals.

Het [is niet een traditionele scheidingsteken, maar de naam van een commando. De manier om het te gebruiken voor meerdere expressies is als volgt:

Code:
if [ "$h" -gt 9 ] && [ "$h" -lt 21 ]; then
  ...
fi
Een iets nieuwere (dat wil zeggen, post-1979 of zo ...) syntaxis

Code:
if [ "$h" -gt 9 -a "$h" -lt 21 ]; then
  ...
fi
De $((...)) syntaxis is veel nieuwer, en introduceert een goede rekenkunde (met inbegrip van de> en <exploitanten), maar is niet direct bruikbaar als een voorwaarde. Het breidt gewoon 0 voor onwaar en 1 voor waar. Maar natuurlijk kunt u mix en match:

Code:
if [ $((h > 9 && h < 21)) == 1 ]; then
  ...
fi
Ten slotte is er de [[... ]] Voorwaardelijk, dat is waarschijnlijk wat je na:

Code:
if [[ $h > 9 ]] && [[ $h < 21 ]]; then
  ...
fi
De personages die het [[scheidingsteken niet kunnen worden gescheiden door witruimte (tot de beste van mijn kennis).
  #3 (permalink)  
Old 07-28-2008
krishmaths krishmaths is offline
Geregistreerde gebruiker
  
 

Join Date: Sep 2006
Locatie: Mysore, India
Posts: 191
Probeer dit:

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

Join Date: juli 2008
Locatie: Genève, Zwitserland
Posts: 23
Oh boy! Ik denk dat ik te jong voor. Ik ben van de Java-generatie, bash schijnt nogal lastig te zijn.

Deze twee lijken te werken. Is dat werkelijk hetzelfde?

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
tijdperk era is offline Forum Advisor  
Herder van Nutteloze Cats (On Sabbatical)
  
 

Join Datum: maart 2008
Locatie: / er / is / alleen / bin / sh
Berichten: 3652
De dubbele aanhalingstekens zijn vooral voor de veiligheid (goede gewoonte in het geval $ h eindigt met een lege string per ongeluk, bijvoorbeeld) en in theorie de & &-variant zou kunnen leiden tot twee externe processen waar-a alleen maar een maken. (Het is theorie omdat [waarschijnlijk intern behandeld in modernen schelpen, er is dus geen extern proces betrokken.)

Shell scripts zijn niet veel ontleed, de syntax is ondiep meer dan in vele andere scripttalen en dit leidt tot een aantal complicaties, maar ook helpt om de shell uiterst veelzijdig. Het gebrek aan standaarden, ingebouwde rekenkundige operatoren vanaf het begin is een andere bron van complexiteit in dit geval. POSIX pogingen om een aantal van de problemen, maar historisch vast te stellen, hebben verschillende shells ontwikkeld verschillende extensies die vervolgens hebt gemaakt, als het ware, om nog meer verschillende manieren een kat huid.
  #6 (permalink)  
Old 07-28-2008
Borobudur borobudur is offline
Geregistreerde gebruiker
  
 

Join Date: juli 2008
Locatie: Genève, Zwitserland
Posts: 23
Dank jullie voor je hulp!
Closed Thread

Bladwijzers

Labels
voorwaarden als verklaring

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 12:44 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0