PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hier meine persönlichen Evergreens...



6a5h4
16-03-2021, 16:48
... die m.M.n. in fast jedes Bash-Skript gehören:




set -u
# Variablen-Deklaration erforderlich (sehr hilfreich beim coden; daher nie vergessen)


pid=${$}
# PID der Shell, in der das Skript ausgeführt wird ohne führende Nullen


PID=$(printf '%05d' ${$})
# PID der Shell, in der das Skript ausgeführt wird mit führenden Nullen


PFAD=${0%/*}
# Verzeichnis, indem das Shellskript liegt


PROG=${0##*/}
# Name des Shellskriptes


trap '' 1 2
trap 'SIGUSR1' 10
trap 'SCHLUSS' 15
# Ignoriere SIGHUP und SIGINT (STRG-C) (da sonst ein Verlassen der Shell zum Abbruch führt)
# bei Auftreten des Signals SIGUSR1 (10) die Funktion "SIGUSR1" ausführen
# bei Auftreten des Signals SIGTERM (15) die Funktion "SCHLUSS" ausführen (zum aufräumen)


dpid=$(pgrep -o ${PROG} | grep -v ${pid})
[[ ${dpid} != "" ]] && SCHLUSS
# weitere Instanzen dieses Skriptes unterbinden (Funktion "INSTANZ" aufrufen; diese protokolliert
# den Aufruf der doppelten Instanz und beendet dieses Skript mit exit 88)


grep ramfs < /proc/mounts > /dev/null
RC=${?}
# Überprüfen, ob RAMDISK gemountet ist (0=gemountet)
# Rückgabewert in Variable ${RC} übergeben


xms=$(date +"%F_%T.%3N")
xdt=${xms:0:16}
# in Variable ${xms} den aktuellen Zeitstempel mit Datum+Uhrzeit+Millisekunden ablegen (in einer Funktion; für Logfiles)
# in Variable ${xdt} Datum+Uhrzeit ohne Millisekunden separieren (spart Rechenzeit für externes Kommando)