====== Spezielle Werte ====== Eigene **PID**: PID=$$ **ReturnCode** der letzten Operation: RC=$? :!: Die Abfrage des ReturnCodes soll **unmittelbar** nach der Operation stattfinden! Die **Länge** des String-Wertes einer Variable: LNG=${#VARNAME} Der eigene **Skript-Name** beim Aufruf (Programmaufruf ohne Parameter), eventuel vorhandener Pfad ist mit dabei: MY_FULL_NAME=${0} **Programmname** (inklusive evtl. Extension) ohne Pfad und ohne Parameter: SELF_FILENAME=${0##*/} Reiner **Programmname** (ohne evtl. Extension und ebenfalls ohne Pfad): SELF_PRG_NAME=${SELF_FILENAME%.*} Relativer **Pfad** (aus dem aktuellen Verzeichnis $PWD heraus) ohne Dateiname und Parameter: PFAD=${0%/*} Extension ersetzen: CFG_FILE_EXT="cfg" CFG_FILE=${PWD}/${SELF_PRG_NAME}.${CFG_FILE_EXT} **Anzahl der Parameter** beim Aufruf ermitteln: ANZAHL=$# Die **Parameter** beim Aufruf: ALL_PARAM=${@} **PID** des Tochterprozesses: PID=${!} Warten bis der Tochterprozess zu Ende ist: wait ${PID} Kurze Zusammenfassung: # Expression # Result ${path##/*/} long.file.name ${path#/*/} billr/mem/long.file.name $path /home/billr/mem/long.file.name ${path%.*} /home/billr/mem/long.file ${path%%.*} /home/billr/mem/long ${path%/*} /home/billr/mem **default-Werte** für Variablen setzen: # String-Werte: VAR_STR=${VAR_STR:="ALL"} # Numerische Werte: VAR_NUM=${VAR_NUM:=0} ---- Stand: 05.11.2009 EOF