Basis van Linux en de opdrachtregel
if [ -f "$f" ]; then
echo "found"
fiIn welk geval is de voorwaarde van de bovenstaande if in een shellscript waar?
- AAls er een gewoon bestand bestaat met de naam in de variabele f
- BAls er een bestand bestaat met de naam in de variabele f en de grootte ervan groter is dan 0
- CAls er een bestand of een directory bestaat met de naam in de variabele f
Antwoord en toelichting tonen
Antwoord: A. Als er een gewoon bestand bestaat met de naam in de variabele f
[ ] is een andere schrijfwijze voor het commando test: het geeft exitstatus 0 (waar) terug als de voorwaarde geldt, en if vertakt op basis daarvan. -f controleert dat „er een gewoon bestand met die naam bestaat” en is onwaar voor een directory. Om alleen het bestaan te controleren gebruik je -e, om te controleren of het een directory is -d, en om te controleren dat de grootte groter is dan 0 -s. Na [ en vóór ] is een spatie nodig, en als de variabele tussen dubbele aanhalingstekens staat, zoals in "$f", werkt de controle ook correct voor namen met spaties.
Verder: nog 9 vragen over Basis van Linux en de opdrachtregel