![]() |
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
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 |
|
||||
|
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 Code:
if [ "$h" -gt 9 -a "$h" -lt 21 ]; then ... fi Code:
if [ $((h > 9 && h < 21)) == 1 ]; then ... fi Code:
if [[ $h > 9 ]] && [[ $h < 21 ]]; then ... fi |
|
||||
|
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 |
|
||||
|
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. |
![]() |
| Bladwijzers |
| Labels |
| voorwaarden als verklaring |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|