2 Stimmen

set -e überschreibt die Parametervariable ($@) im Bash-Skript

Ich habe ein Skript test.sh

#/!bin/bash
set -e
trap errorhandler ERR

errorhandler(){
    status=$?
    trap - ERR
    exit $status
}

echo "$@"

exit 0

wenn ich anrufe sh test.sh 'Hey' es wird gedruckt -e anstelle von Hey .

Mein Lösungsansatz ist Surrounding set -e mit Backticks, aber ich weiß nicht, ob es noch wie vorgesehen funktioniert

Eine andere Lösung wäre, sie in einer Variablen in der ersten Zeile zu speichern, aber ich möchte meine set -e in der ersten Zeile aus einem offensichtlichen Grund (Behandlung eines Fehlers).

Gibt es eine clevere Möglichkeit, dies zu tun? Wie der Befehl "Hey, fass meinen $@ nicht an".

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X