Tengo un script de shell de pez cuyo comportamiento predeterminado es enviar un correo electrónico cuando se completa. Me gustaría modificarlo para responder a un argumento nomail
desde la línea de comandos. Así, por ejemplo, ejecutar el script normalmente produciría un correo electrónico:Escribir un script de Fish Shell con un argumento opcional
michaelmichael: ~/bin/myscript
Pero si se ejecuta con el interruptor nomail
, que no enviaría el mensaje de confirmación:
michaelmichael: ~/bin/myscript nomail
Si Ejecuto el script con el argumento nomail
, funciona bien. Sin nomail
, no está definido y arroja un error. Revisé la documentación del caparazón de los peces, pero parece que no puedo encontrar nada que funcione. Esto es lo que tengo hasta ahora
switch $argv
case nomail
## Perform normal script functions
case ???
## Perform normal script functions
mailx -s "Script Done!"
end
La ejecución de esta lanza el siguiente error:
switch: Expected exactly one argument, got 0
Obviamente que espera un argumento, simplemente no conocen la sintaxis para contarla a aceptar sin argumentos , o uno si existe.
Supongo que esto es bastante básico, pero simplemente no entiendo las secuencias de comandos de shell muy bien.
Es más útil si se contabiliza el mensaje de error específico. –
añadido. Lo siento por eso. – michaelmichael