Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
shellscripts:shellscripts [2021/05/03 21:48] – [Dateinamen beschneiden] st | shellscripts:shellscripts [2022/12/20 11:25] – [Zählschleife (kopfgesteuert)] st | ||
---|---|---|---|
Zeile 181: | Zeile 181: | ||
echo "empty parameter!" | echo "empty parameter!" | ||
echo " | echo " | ||
- | fi | ||
- | </ | ||
- | |||
- | ==== Fehler aufgetreten (Exit-Code ungleich 0) ==== | ||
- | |||
- | <code bash> | ||
- | if [ $? -ne 0 ] | ||
- | then | ||
- | echo Fehler aufgetreten | ||
- | exit 1 | ||
- | else | ||
- | Code | ||
fi | fi | ||
</ | </ | ||
Zeile 232: | Zeile 220: | ||
[[https:// | [[https:// | ||
+ | |||
+ | |||
+ | ==== interaktive Shell erkennen ==== | ||
+ | |||
+ | Skripts sollten bei Aufruf über cron nicht unnötig Statusmeldungen erzeugen: | ||
+ | <code bash> | ||
+ | if [ -z " | ||
+ | echo This shell is not interactive. | ||
+ | else | ||
+ | echo This shell is interactive. | ||
+ | fi | ||
+ | </ | ||
+ | |||
==== Datei erzeugen ==== | ==== Datei erzeugen ==== | ||
Zeile 248: | Zeile 249: | ||
==== Zählschleife (kopfgesteuert) ==== | ==== Zählschleife (kopfgesteuert) ==== | ||
+ | |||
+ | kopfgesteuert: | ||
von 1.. bis 10 zählen: | von 1.. bis 10 zählen: | ||
Zeile 254: | Zeile 257: | ||
i=1 | i=1 | ||
while [ $i -le 10 ] | while [ $i -le 10 ] | ||
+ | do | ||
+ | echo $i | ||
+ | let i=$i+1 #nur bash | ||
+ | # i=`expr $i + 1` # universal | ||
+ | done | ||
+ | </ | ||
+ | oder als for-Schleife: | ||
+ | <code bash> | ||
+ | for i in {0..10}; do echo $i; done | ||
+ | </ | ||
+ | ==== Zählschleife (Fussgesteuert) ==== | ||
+ | |||
+ | Fußgesteuert: | ||
+ | |||
+ | von 1.. bis 10 zählen: | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | i=1 | ||
+ | until [ $i -gt 10 ] | ||
do | do | ||
echo $i | echo $i | ||
Zeile 309: | Zeile 331: | ||
</ | </ | ||
- | [[https:// | + | [[https:// |
+ | |||
+ | === Fehler aufgetreten (Exit-Code ungleich 0) === | ||
+ | |||
+ | <code bash> | ||
+ | if [ $? -ne 0 ] | ||
+ | then | ||
+ | echo Fehler aufgetreten | ||
+ | exit 1 | ||
+ | else | ||
+ | Code | ||
+ | fi | ||
+ | </ | ||
==== Dateinamen beschneiden ==== | ==== Dateinamen beschneiden ==== | ||
- | Aus einem Pfad bekommt man mit '' | + | Aus einem Pfad bekommt man mit |
+ | * '' | ||
+ | * '' | ||
- | | + | Andere Möglichkeiten |
+ | | ||
* nur die **Erweiterung**: | * nur die **Erweiterung**: | ||
* pro Aufruf **eine Ebene wegnehmen** (bei mehreren Punkten im Dateinamen): | * pro Aufruf **eine Ebene wegnehmen** (bei mehreren Punkten im Dateinamen): | ||
Zeile 332: | Zeile 369: | ||
==== sed-Befehle ==== | ==== sed-Befehle ==== | ||
+ | |||
+ | # Kommentarzeilen entfernen:'' | ||
+ | |||
+ | Leerzeilen: '' | ||
< | < |