![](https://seccdn.libravatar.org/avatar/99d6a2e78880aae0536e8653e5f8823c.jpg?s=120&d=mm&r=g)
Hallo Joachim, Joachim Tüns wrote:
Hi,
ich habe ein Verständnisproblem:
Ich habe die folgenden Zeilen in einem Script: #!/bin/sh echo Text | grep -e .*[^[:digit:]].* - echo $? echo 15 | grep -e .*[^[:digit:]].* - echo $?
Wenn ich dieses Script in dem Verzeichnis starte, in dem das Script gespeichert ist, erhalte ich die korrekte Ausgabe: Text 0 1
Nun starte ich das Script mit /home/benutzer/scripte/script aus einem anderem Verzeichnis. Dann muss ich zweimal Strg+C drücken und erhalte als Ausgabe: 130 130
Ich stelle nun folgende Zeilen an den Anfang des Scripts, dann bekomme ich das richtige Ergebnis beim Start des Scripts aus jedem Verzeichnis. Diesen Zeilen wechseln in den Scriptpfad: script_pfad="$BASH_SOURCE" script_pfad=${script_pfad%\/*} script_pfad="$script_pfad""/" cd $script_pfad
Was bedeutet das?
Gued gohn Achim
veruchs's doch mal damit: echo Text | grep -e '.*[^[:digit:]].*' - echo $? echo 15 | grep -e '.*[^[:digit:]].*' - echo $? die Apostroph um Deinen regulären Ausdruck verhinder, daß die shell bereits etwas ersetzt. In dem Verzeichnis, in dem Du das richtige Ergebnis erhälst, befindet sich offenbar keine Datei, die diesem regulären Ausdruck entspricht, während es in dem anderen Verzeichnis offenbar so ist. Gruß Martin