die neueste Ubuntu Standard-Shell verwenden (bash-kompatibel) Ich kann eine einzeilige Funktion erstellen und nennen es:Linux-Shell nicht eine Funktion über Dollar-Operator aufrufen
$ foo() { echo bar; }; foo
bar
Aber wenn ich eine Zeichenfolge mit der gleiche Befehl und führen Sie es über $
, Funktion wird nicht aufgerufen. Welchen Teil der Shell-Funktion Syntax verstehe ich nicht?
$ FOO='foo() { echo bar; }; foo'
$ echo $FOO
foo() { echo bar; }; foo
$ $FOO
-bash: foo(): command not found
suchen Sie wahrscheinlich nach 'eval'. – fedorqui
Bitte überprüfen Sie dies [Frage SO] (https://stackoverflow.com/questions/11198622/store-a-funktion-in-a-unix-variable) – doz10us