関数はスクリプトで実行されません。

関数はスクリプトで実行されません。

次の内容でShellScript.shというスクリプトを作成しました。

#!/bin/sh
# Shell script 

function help {
  echo ""
  echo "./ShellScript.sh {start | stat}"
  echo ""
  echo "These are some commands:"
  echo ""

  # Start command
  echo "start"
  echo "This starts the process"
  echo ""

  # Stat command
  echo "stat"
  echo " abcxyz"
  echo ""
}

ただし、コマンドラインに「./ShellScript.sh help」と入力すると、何も起こりません。私は一日中この問題を解決しようとしてきましたが、小さなものを見逃していると確信していますが、それが何であるかわかりません!

ベストアンサー1

最終目標が何であるかはわかりませんが、./ShellScript.sh help一度電話してみてください。範囲スクリプトの「ヘルプ」; Arkadiusz Drabczykが述べたように、ShellScript.shが実行するすべてのことは、関数を設定して終了することです。

プロセスを開始または計算するためのオプションベースのスクリプトを作成するようです。この場合、引数を解析して関数を呼び出すには、「デフォルト」レベルのコードが必要です。

たとえば、ShellScript.sh の末尾に以下を追加します。

case "$1" in
start)
    echo "This starts the process"
    ;;
stat)
    echo "stat"
    echo " abcxyz"
    ;;
help)
    help
    ;;
*)
    echo "usage: $0 start|stat"
    ;;
esac

提案すると、「stat」(人間に)は「start」と非常に似ています。 「status」を考えてみましょう。

おすすめ記事