bashでシェル関数を定義する正しい構文はどれか?

LPIC-1(101/102 試験)「シェルとスクリプト」の練習問題。正解と選択肢ごとの個別解説つきで、過去問対策・例題演習に。

LPIC-1 / シェルとスクリプト
  1. function greet { echo hi }
  2. def greet() { echo hi; }
  3. greet() { echo hi; }✓ 正解
  4. greet = () { echo hi; }
💡 名前() { コマンド; } が関数定義の標準形です。{ } 内の最後のコマンドには ; か改行が必要です。def はbashの構文ではありません。
✕ function greet { echo hi }:functionキーワード使用時も末尾コマンドに;か改行が必要で、{ echo hi }は構文エラーになる。
✕ def greet() { echo hi; }:defはPython等の構文でbashには存在せず、関数定義には使えない。
○ greet() { echo hi; }:名前() { コマンド; }が標準形で、末尾に;があり正しい関数定義である。
✕ greet = () { echo hi; }:name = () の形式はbashの関数定義構文ではなく、エラーとなる。
▶ この分野をクイズ形式で解く