Kochbuch für die Konsole
Version vom 22. August 2020, 02:56 Uhr von Hamatoma (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Kategorie:Tutorials Übersicht über das Konsolen-Tutorial ==Vorbemerkung== Hier beginnt eine Sammlung von Scripten, die in Kurzform die Möglichkeite…“)
Übersicht über das Konsolen-Tutorial
Vorbemerkung[Bearbeiten]
Hier beginnt eine Sammlung von Scripten, die in Kurzform die Möglichkeiten der Shellprogrammierung andeuten.
Ausgeben der menschlichen Benutzer[Bearbeiten]
#! /bin/bash
cut -f1,3 -d: /etc/passwd | grep "[a-z]" >/tmp/get_users.tmp
mapfile -t </tmp/get_users.tmp LINES
COUNT=${#LINES[@]}
IX=0
echo $COUNT ${LINES[0]}
while [ $IX -lt $COUNT ] ; do
X=${LINES[$IX]}
USER=${X%:*}
ID=${X#*:}
if [ "$ID" -ge 200 ] ; then
echo "$USER: $ID"
fi
IX=$(expr $IX + 1)
done
- mit cut werden Spalten aus einer Datei ausgeschnitten: Trennzeichen ':', es interessieren nur Spalte 1 und 3
- mit grep werden die Leerzeilen ausgefiltert.
- Probier aus: cut -f1,3 -d: /etc/passwd | grep "[a-z]"
- mapfile liest eine Datei und legt die Zeilen in dem bezeichneten Array (hier LINES) ab.
- In der Schleife werden die einzelnen Zeilen der Datei bearbeitet
- Die Zeile enthält <benutzer>:<id>. Diese Info wird aufgespalten
- Es werden nur die Benutzer ausgegeben, deren User-ID >= 200 ist
- Mit expr wird der nächste Index berechnet: bisheriger Index + 1
Prüfen, ob der voreingestellt Browser der Chromium ist[Bearbeiten]
#! /bin/bash
BROWSER=x-www-browser
LINK=/usr/bin/$BROWSER
while [ True ] ; do
LINK=$(readlink $LINK)
test -z "$LINK" && break
BROWSER=$LINK
done
BLOCKED_BROWSER=chromium
if [ $(expr $BROWSER : ".*$BLOCKED_BROWSER" ) != 0 ] ; then
test -x /usr/bin/midori && BROWSER=/usr/bin/midori
test -x /usr/bin/iceweasel && BROWSER=/usr/bin/iceweasel
if [ $(expr $BROWSER : ".*$BLOCKED_BROWSER") != 0 ] ; then
xmessage "$BLOCKED_BROWSER has a bug. No alternatives found. Install another ..."
fi
fi
- x-www-brower ist ein symbolischer Link
- die symbolischen Links werden bis zur realen Datei "verfolgt"
- mit "expr STRING : REXPR" wird überprüft, ob der String einem regulären Ausdruck entspricht. Wichtig: Die Übereinstimmung muss ab dem String-Anfang beginnen ("anchored expression"). Deshalb beginnt der reg. Ausdruck mit ".*" (beliebig viele Zeichen am Anfang)
- Es werden Alternativ-Browser gesucht: iceweasel oder midori Ist keiner vorhanden, erfolgt eine Fehlermeldung ("xmessage ...")