Seja executável para qualquer comando [duplicado]

1

Eu quero saber qual executável é executado para qualquer comando no bash.

Exemplo:

  1. Eu tenho o firefox instalado aqui /usr/bin/firefox , ele está no $PATH
  2. alias browser=firefox
  3. alias br=browser

Agora quero digitar algo como getexecutable "br" e ele deve exibir /usr/bin/firefox

    
por bricklore 23.07.2015 / 23:28

1 resposta

1

Aqui está um script rápido que escrevi mais para o meu comentário, que no caso SIMPLES de aliases funcionará. Para qualquer coisa com argumentos / etc, porém, falhará miseravelmente.

cmd="$1"
type=aliased
while [ "$type" = "aliased" ]; do
    output="$(type "$cmd")"
    type="$(cut -d ' ' -f 3 <<< "$output")"
    cmd="$(cut -d ''' -f 2 <<< "$output" | tr -d \')"
done
echo "$output"

Você terá que (ironicamente!) alias algo para isso, já que gerar um subshell provavelmente removerá seus aliases locais.

    
por 24.07.2015 / 00:33