GNU/Linux >> Linux Esercitazione >  >> Linux

Eseguire un eseguibile nel percorso con lo stesso nome di una funzione esistente?

A volte definisco una funzione che oscura un eseguibile e ne modifica gli argomenti o l'output. Quindi la funzione ha lo stesso nome dell'eseguibile e ho bisogno di un modo per eseguire l'eseguibile dalla funzione senza chiamare la funzione in modo ricorsivo. Ad esempio, per eseguire automaticamente l'output di fossil diff tramite colordiff e less -R Io uso:

function fossil () {
    local EX=$(which fossil)
    if [ -z "$EX" ] ; then
        echo "Unable to find 'fossil' executable." >&2
        return 1
    fi
    if [ -t 1 ] && [ "$1" == "diff" ] ; then
        "$EX" "[email protected]" | colordiff | less -R
        return
    fi
    "$EX" "[email protected]"
}

Se fossi sicuro della posizione dell'eseguibile, potrei semplicemente digitare /usr/bin/fossil . Bash riconosce quel / significa che il comando è un eseguibile, non una funzione. Ma poiché non conosco la posizione esatta, devo ricorrere a chiamare which e verificando il risultato. C'è un modo più semplice?

Risposta accettata:

Usa il command shell incorporata:

bash-4.2$ function date() { echo 'at the end of days...'; }

bash-4.2$ date
at the end of days...

bash-4.2$ command date
Mon Jan 21 16:24:33 EET 2013

bash-4.2$ help command
command: command [-pVv] command [arg ...]
    Execute a simple command or display information about commands.

    Runs COMMAND with ARGS suppressing  shell function lookup, or display
    information about the specified COMMANDs.  Can be used to invoke commands
    on disk when a function with the same name exists.

Linux
  1. Usando –exclude con il comando Du?

  2. Come eseguire il comando originale con alias con lo stesso nome?

  3. Come posso eseguire un comando diverso ma con gli stessi argomenti?

  4. Rsync copia la directory corrente con il nome

  5. Linux:eseguire lo stesso comando su più macchine contemporaneamente

Navigazione nel filesystem con percorsi relativi alla riga di comando

Il tutorial del comando fc con esempi per principianti

Manipolazione del testo dalla riga di comando con grep

Tracciare il tempo con Timewarrior alla riga di comando

Come trovare file con il comando fd in Linux

Copia i file in modo sicuro con il comando SCP