次の内容で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」を考えてみましょう。
答え2
関数を定義しましたが、実際には何もしませんでした。あなたはする必要があります呼ぶスクリプトで機能します。これがより一般的なアプローチであり、スクリプトの引数に基づいていくつかの関数の1つを呼び出す場合は、次のように設定します(そのうちのいくつかを示して最後に「$」を追加しました)。
# Stat command
echo "stat"
echo " abcxyz"
echo ""
}
$1