Bash - ターミナルで複数行にわたって関数を定義するにはどうすればよいですか?

Bash - ターミナルで複数行にわたって関数を定義するにはどうすればよいですか?

ターミナルで複数行にわたって関数を定義するにはどうすればよいですか?

# this doesn't work
function my_func { \
  echo "number 5" \
}

非常に基本的です。それでもまだ厄介です。

答え1

ここで行を継続するために は必要ありません\。次を試してください:

function my_func {
  echo "number 5" 
}

キーワードfunctionは必須ではありません。代わりに以下を使用できますfuncname () {...}

my_func() {
  echo "number 5" 
}

ちなみに、これが機能しない理由は、バックスラッシュによって関数定義がすべて 1 行になり、1 行の関数定義は;bash では で終わる必要があるためです。

例えば、これは失敗します:

my_func () { echo "number 5" }

これは動作します:

my_func () { echo "number 5" ; }

以下も同様です:

function my_func { \
  echo "number 5" \
  ; \
}

関連情報