関数の呼び出し順で「command not found」のエラー
シェルスクリプトで関数の場所を間違えると「command not found」になる
関数を使ったシェルスクリプトで関数の呼び出す場所は、定義した関数より前に書くと「command not found」や「Main: コマンドが見つかりません」のエラーになります。
- 関数定義の前に呼び出している
- 原因: シェルは上から順に実行するため、関数を定義する前にその関数を呼び出すと「見つからない」とエラーになります。
- 対処法:
function my_func { ... }の形式で関数を定義するコードを、呼び出すコードよりもスクリプトの前(または同じファイル内の前)に置く。
$ vi test.sh
#/bin/bash
echo_test
function echo_test () {
echo "TEST"
}
$ sh test.sh
test.sh: line 3: echo_test: command not found
定義した関数は呼び出す位置より前に書くとエラーなく関数が実行されます
$ vi test.sh
#/bin/bash
function echo_test () {
echo "TEST"
}
echo_test
$ sh test.sh
TEST



>定義した関数は呼び出す位置より後ろに書くとエラーなく関数が実行されます
記述が逆じゃない?画像はあってますが
ご指摘ありがとう御座います、指摘箇所を修正しました