wie definiere ich Funktionen im Terminal über mehrere Zeilen?
# this doesn't work
function my_func { \
echo "number 5" \
}
Sehr einfach. Trotzdem nervig.
Antwort1
\
Sie benötigen die Zeilen zum Fortsetzen hier nicht . Versuchen Sie:
function my_func {
echo "number 5"
}
Das function
Schlüsselwort ist nicht erforderlich, Sie können funcname () {...}
stattdessen Folgendes verwenden:
my_func() {
echo "number 5"
}
Der Grund, warum es nicht funktioniert, liegt übrigens darin, dass die Backslashes die Funktionsdefinition auf eine Zeile beschränken und einzeilige Funktionsdefinitionen ;
in Bash mit einem enden müssen.
zB das hier schlägt fehl:
my_func () { echo "number 5" }
das funktioniert:
my_func () { echo "number 5" ; }
genauso wie dies:
function my_func { \
echo "number 5" \
; \
}