https://www.franzmatejka.at/htl/doc/SYTB_3/12_test.html
$? zu findenexit [Exitstatus] hernehmentest ist die Grundlage für if-Anweisung in ScriptsSyntax:
test 'xyz' = 'xyz'
echo $?
Syntax:
# Leerzeichen neben den [ ] !
[ 'xyz' = 'xyz' ]
echo $?
&& und || rechts von test&& wird der Befehl rechts ausgeführt wenn test true ($? = 0)|| wird der Befehl rechts ausgeführt wenn test false ($? != 0)Beispiel:
# 100 > 99:
test 100 -gt 99 && echo "Yes, that's true."
# Output: Yes, that's true.
Kombination von && und || auch möglich:
test 100 -gt 99 && echo "Yes, that's true." || echo "No, that's false."
# Output: Yes, that's true.

Schreibe ein Skript mit einer Datei als Argument, es soll der Text Datei ist zu groß ausgegeben werden wenn die Datei mehr als 100 Bytes hat. Die Dateigröße kann mit ls -l und anschließendes cut ermittelt werden.
V1.1: Wenn die Datei nicht mehr als 100 Bytes hat soll der Text Größe OK ausgegeben werden.
test $(ls -l $1 | cut -d " " -f5) -lt 100 && echo "Größe OK" || echo "Datei ist zu groß"
ls -l $1 bekommt man Informationen über die Datei die als erstes Argument übergeben wurdecut -d " " -f5 setzt den delimiter auf Leerzeichen und nimmt die 5. SpalteGröße OK ausgegeben sonst Datei ist zu groß┌──(kali㉿kali)-[~/SYTB/260428]
└─$ ./checkSize.sh checkSize.sh
Größe OK
┌──(kali㉿kali)-[~/SYTB/260428]
└─$ ./checkSize.sh ../3AHITS-SYTB-Schauer-Alexander/260428/image.png
Datei ist zu groß
Schreibe ein Skript das den Namen eines Verzeichnisses übergeben bekommt. Das Verzeichnis soll angelegt werden wenn dieses noch nicht existiert. Wenn es das Verzeichnis schon gibt soll eine Warnung und der Inhalt des Verzeichnis angezeigt werden.
# ! zum negaten
test ! -d $1 && mkdir $1 || echo "Verzeichnis existiert schon"; ls $1
; wird hergenommen, damit man mehrere Befehle nebeneinander schreiben kann! nach test┌──(kali㉿kali)-[~/SYTB/260428]
└─$ ./dirCreator.sh .
Verzeichnis existiert schon
checkSize.sh dirCreator.sh
┌──(kali㉿kali)-[~/SYTB/260428]
└─$ ./dirCreator.sh ./abc
┌──(kali㉿kali)-[~/SYTB/260428]
└─$ ls
abc checkSize.sh dirCreator.sh
Schreibe ein Bash Script das für den aktuellen Wochentag eine Kurzform des Stundenplans ausgibt:
$ ./splan.sh
Es ist Donnerstag
AM SYTB SYTB frei MEDT MEDT BESP BESP
Hinweis: Mit date den aktuellen Wochentag ermitteln.
tag=$(date +%u)
echo -n "Es ist "
test $tag = 1 && echo "Montag" && echo "GGP-w SEW SEW SEW ITP2MG frei INSY/ITSE INSY/ITSE"
test $tag = 2 && echo "Dienstag" && echo "SYTB SYTB ITP2PM E1 ITSE SYTB"
test $tag = 3 && echo "Mittwoch" && echo "D AM NWT1 NWT1 RK E1 frei SYTB GGP-w AM"
test $tag = 4 && echo "Donnerstag"&& echo "NW2-p AM SYTE ITP2PM BESP BESP"
test $tag = 5 && echo "Freitag" && echo "MEDT ITP2A RK ITSE MEDT/SYTE MEDT/SYTE"
test $tag = 6 && echo "Samstag" && echo "frei"
test $tag = 7 && echo "Sonntag" && echo "frei"
date +%u gibt den Wochentag als Zahl von 1-7 zurück-n option von echo macht nach echo keine Zeilenumbruch┌──(kali㉿kali)-[~/SYTB/260428]
└─$ ./stundenplan.sh
Es ist Dienstag
SYTB SYTB ITP2PM E1 ITSE SYTB
Erstelle ein Skript das ein Markdown Dokument nach HTML konvertiert:
$ ./md2html test.md test.html
Verwende pandoc zum konvertieren.
Dabei soll aber nur dann konvertiert werden wenn dies wirklich notwendig ist, d.h. die html Zieldatei entweder nicht existiert oder älter ist als die Quelldatei, denn wenn sich die Quelldatei nicht geändert hat ist das konvertieren auch nicht notwendig.
# sudo apt-get install pandoc
# pandoc muss installiert sein
quell=$1
ziel=$2
(test ! -e $ziel || test $ziel -ot $quell) && pandoc -o $ziel $quell; echo "konvertiert"
sudo apt-get install pandoc pandoc installieren-e $ziel geprüft ob Datei existiert wenn nicht dann konvertieren-ot┌──(kali㉿kali)-[~/SYTB/260428]
└─$ ls
abc checkSize.sh dirCreator.sh md2html.sh stundenplan.sh test.md
┌──(kali㉿kali)-[~/SYTB/260428]
└─$ ./md2html.sh test.md test.html
konvertiert
┌──(kali㉿kali)-[~/SYTB/260428]
└─$ ls
abc checkSize.sh dirCreator.sh md2html.sh stundenplan.sh test.html test.md
┌──(kali㉿kali)-[~/SYTB/260428]
└─$ cat test.html
<h1 id="header">Header</h1>
<p>Paragraph</p>
<div class="sourceCode" id="cb1"><pre
class="sourceCode bash"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">sudo</span> apt-get install pandoc</span></code></pre></div>
Diese Übung ist sich nicht mehr ausgegangen.