我有一个fish
shell脚本,其默认行为是在完成后发送电子邮件.我想修改它以响应命令行中的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:预计只有一个参数,得到0
显然它需要一个参数,我只是不知道告诉它不接受任何参数的语法,或者它是否存在的语法.
我猜这是非常基本的,但我只是不太了解shell脚本.
像这样包装你的switch语句:
if set -q argv ... end
另外,我认为你的默认情况应该是’*’.