デフォルトの動作が完了すると電子メールを送信するフィッシュシェルスクリプトがあります。nomail
コマンドラインからの引数に応答するように変更したいと思います。したがって、たとえば、通常どおりスクリプトを実行すると、次の電子メールが生成されます。
michaelmichael: ~/bin/myscript
ただし、nomail
スイッチで実行すると、確認メールは送信されません。
michaelmichael: ~/bin/myscript nomail
引数を指定してスクリプトを実行すると、nomail
問題なく実行されます。がなければnomail
、$argv
未定義であり、エラーがスローされます。魚の殻のドキュメントを精査しましたが、機能するものが見つからないようです。これが私がこれまでに持っているものです
switch $argv
case nomail
## Perform normal script functions
case ???
## Perform normal script functions
mailx -s "Script Done!"
end
これを実行すると、次のエラーがスローされます。
switch: Expected exactly one argument, got 0
明らかに、引数が必要です。引数を受け入れないように、または存在する場合は引数を受け入れるように指示するための構文がわかりません。
これはかなり基本的なことだと思いますが、シェルスクリプトをよく理解していません。