Bash - Wie definiere ich Funktionen im Terminal über mehrere Zeilen?

Bash - Wie definiere ich Funktionen im Terminal über mehrere Zeilen?

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 functionSchlü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" \
  ; \
}

verwandte Informationen