C'è un programma che uso, diciamo xyz
, che ha effetti indesiderati se eseguo il comando bare senza argomenti. Quindi vorrei evitare di eseguire accidentalmente xyz
comando senza argomenti ma consenti l'esecuzione con argomenti.
Come posso scrivere uno script di shell in modo che quando chiamo xyz
senza argomenti stamperà un messaggio di errore e altrimenti passerà tutti gli argomenti a xyz
programma?
Risposta accettata:
Puoi controllare la variabile speciale $#:
if [ $# -eq 0 ]; then
echo "No arguments provided!"
exit 1
fi
/usr/bin/xyz "[email protected]"
Quindi, aggiungi un alias al tuo ~/.bashrc
;
alias xyz="/path/to/script.sh"
Ora, ogni volta che esegui xyz
, verrà invece lanciato l'alias. Questo chiamerà lo script che controlla se hai degli argomenti e avvia solo il vero xyz
comanda se lo fai. Ovviamente, cambia /usr/bin/xyz
a qualunque sia il percorso completo del comando.