Bash - 如何通过多行在终端中定义函数?

von*_*otz 0 bash

如何通过多行在终端中定义函数?

# this doesn't work
function my_func { \
  echo "number 5" \
}
Run Code Online (Sandbox Code Playgroud)

非常基本。还是讨厌。

cas*_*cas 5

您不需要在\此处继续行。尝试:

function my_func {
  echo "number 5" 
}
Run Code Online (Sandbox Code Playgroud)

function关键字不是必需的,你可以使用funcname () {...},而不是:

my_func() {
  echo "number 5" 
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,它不起作用的原因是反斜杠使函数定义全部为一行,而一行函数定义需要以;in bash结尾。

例如这失败了:

my_func () { echo "number 5" }
Run Code Online (Sandbox Code Playgroud)

这有效:

my_func () { echo "number 5" ; }
Run Code Online (Sandbox Code Playgroud)

就像这样:

my_func () { echo "number 5" }
Run Code Online (Sandbox Code Playgroud)