Sehr lange, viel zu lange, habe ich an der Problematik gesessen, wie man „bash“ (unter Debian Linux) einen if-Vergleich mit mehreren Variablen, die „or“ verknüpft sind, realisiert. Es funktioniert:
- if [[ $ERGEBNISCMP -eq 1 ]] || [[ $ERSTESMAL -eq 1 ]]; then
Also zwei eckige Klammern und das „or“ mit zwei senkrechten „Pipe“-Symbolen.
Andere Versuche waren:
# if [[ -z $1 ]] || [[ ! -r $1 ]]
# if [[ $? -eq 1 ]] || [[ $ERSTESMAL -eq 1 ]]; then
# if [[ $ERGEBNISCMP == 1 || $ERSTESMAL == 1 ]]; then
Es kann sein, daß auch das funktioniert.
Das entscheidende Problem ist aber, daß die „Standard-Shell“, /bin/sh, auf „dash“ zeigt:
lrwxrwxrwx 1 root root 4 10. Dez 2020 /bin/sh -> dash
Und damit funktioniert es nicht und es treten die seltsamsten Fehler auf.
In die erste Zeile muß also ein:
- !/bin/bash
Dann geht es. Vielen Dank an den, der darauf hingewiesen hat in einem Forums-Post – und ich habe diesen Hinweis zu lange nicht ernst genug genommen.