用可选参数编​​写鱼壳脚本

我有一个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

另外,我认为你的认情况应该是’*’.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...