Basis van Linux en de opdrachtregel

$ false && echo A || echo B
$ true || echo C; echo D

Welke tekens worden getoond als de bovenstaande twee regels in een shell worden uitgevoerd?

  1. AAlleen D
  2. BB en D
  3. CB, C en D
Antwoord en toelichting tonen

Antwoord: B. B en D

Elk commando geeft bij het beëindigen een exitstatus terug: 0 betekent succes en elke andere waarde mislukking (de laatste waarde is te zien met $?). „A && B” voert B alleen uit als A slaagt, „A || B” voert B alleen uit als A mislukt, en „;” voert het volgende commando uit ongeacht het resultaat. In de eerste regel mislukt false, dus echo A wordt overgeslagen, het geheel „false && echo A” geldt als mislukt, en echo B na || wordt uitgevoerd. In de tweede regel slaagt true, dus echo C wordt niet uitgevoerd, terwijl echo D na „;” altijd wordt uitgevoerd; er worden dus B en D getoond.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van Linux en de opdrachtregel

  1. Wat is de uitvoer van de twee echo-commando's als de bovenstaande commando's in volgorde worden uitgevoerd?
  2. Zoals hierboven te zien is, wordt het script s.sh met argumenten uitgevoerd. Wat is de uitvoer?
  3. In welk geval is de voorwaarde van de bovenstaande if in een shellscript waar?
  4. Welke bestanden staan na de bovenstaande sessie in de directory?
  5. Een uitvoerbaar script run.sh in de huidige directory geeft „command not found” als het wordt gestart door „run.sh” te typen, maar wordt wel uitgevoerd als „./run.sh” wordt getypt. Wat is de reden?