[fli4l] Bash /Dash
Christoph Schulz
fli4l at kristov.de
So Nov 1 10:22:20 CET 2015
Hallo!
Mike B. schrieb:
> . exit 1
exit 1
(Was soll der Punkt dort? Das funktioniert auch bei mir in der bash nicht!)
> set -- ${BACKUPDIR}/backup-???.tgz
> lastname=${!#}
Indirektion (${!...}) gibt es in der ash nicht. Um den letzten Eintrag zu
finden, kannst du eval verwenden:
eval lastname=\$\{$#\}
> backupnr=$[10#${backupnr}]
Basisumrechnungen gibt es in der ash nicht. Es reicht wohl völlig, führende
Nullen abzuschneiden:
backupnr=$(echo "$backupnr" | sed 's/^0*//;s/^$/0/')
> if [ "$[backupnr++]" -ge 30 ]; then
So etwas wie Postinkrementoperatoren gibt es in der ash nicht. Du musst das
entsprechend umformulieren:
currentnr=$backupnr
backupnr=$((backupnr+1))
if [ $currentnr -ge 30 ]; then
> . exit 1
Siehe oben.
> backupnr=${backupnr: -3}
Die letzten drei Zeichen zu liefern geht so mit der ash nicht. Alternative:
len=${#backupnr}
backupnr=${backupnr:$((len-3)):$len}
Ach so, ich übernehme natürlich keine Garantie, dass ich nicht irgendetwas
übersehen habe...
Viele Grüße und viel Erfolg,
--
Christoph Schulz
[fli4l-Team]
Mehr Informationen über die Mailingliste Fli4L