Termux | bash | Error?

1 Antwort

Mit bash kannst du alternativ [] ... ]] statt [ ...] verwenden, welches eine Reihe Vorteile bietet. Wie schon an andere Stelle gesagt, benötigst du Leerzeichen hinter [ oder [[, und auch um = oder ==, da bash sonst nicht weiß, wo es trennen soll, den die Zeichenfolge [a=b] ist ein legaler Dateiname unter bash, und damit nicht notwendigerweise ein Ausdruck. Darum denkt im oberen Bild bash, dass es sich um einen Befehl,ein Programm mit diesem Namen handelt, welches es nicht finden kann.

Woher ich das weiß:Berufserfahrung – LPI zertifiziert
Bushmills145  29.04.2023, 09:46

Für die Zeile, in der du ein Feld aus dem Pfad holst, benötigst du ausserdem kein externes command wie cut, denn das kann bash auch mit internen Mitteln. Das Prinzip dafür zeigt dies:

string="a/b/c/d"
IFS=/ feld=($string)
echo "${feld[2]}"

Alternativen hierzu, die ohne array, dafür mit positional parametern funktionieren, bestehen auch, aber ein array ist dafür recht elegant.

0