Hay un programa que uso, digamos xyz
, que tiene efectos no deseados si ejecuto el comando sin argumentos. Así que me gustaría evitar ejecutar accidentalmente xyz
comando sin argumentos pero permita que se ejecute con argumentos.
¿Cómo puedo escribir un script de shell para que al llamar a xyz
sin argumentos, imprimirá un mensaje de error y, de lo contrario, pasará todos los argumentos a xyz
programa?
Respuesta aceptada:
Puede verificar la variable especial $#:
if [ $# -eq 0 ]; then
echo "No arguments provided!"
exit 1
fi
/usr/bin/xyz "[email protected]"
Luego, agregue un alias a su ~/.bashrc
;
alias xyz="/path/to/script.sh"
Ahora, cada vez que ejecutes xyz
, se lanzará el alias en su lugar. Esto llamará al script que verifica si tiene algún argumento y solo inicia el xyz
real. manda si lo haces. Obviamente, cambia /usr/bin/xyz
a cualquiera que sea la ruta completa del comando.