Questa funzione esiste in uno dei miei ~ / .bashrc dei miei utenti:
function rm()
{
ls $*
echo "rm?"
read ans
if [ "$ans" == 'y' ]; then
/bin/rm $*
fi
}
Nel mio script ksh che gli utenti devono eseguire, ho una riga come questa:
[[ "$KEEP" = "" ]] && \rm $FILE
Mentre la barra rovesciata sfugge agli alias definiti dall'utente, non impedisce allo script di eseguire funzioni definite dall'utente con lo stesso nome. Di conseguenza, al posto della funzione di sistema viene chiamata la funzione rm () dell'utente.
Ho trovato la domanda e la risposta di questa domanda da superutente, ma la risoluzione si applica solo a una funzione integrata, non a un comando di sistema.
Qual è il migliore per imporre il richiamo del comando rm e non un alias o una funzione? Devo specificare il percorso completo di rm e ogni comando di sistema che voglio assicurare sia eseguito correttamente? C'è un modo migliore?