shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Recuperar último comando digitado antes de executar s


From: Fabiano Caixeta Duarte
Subject: Re: [shell-script] Recuperar último comando digitado antes de executar script
Date: Fri, 27 Feb 2009 12:40:24 -0300

2009/2/21 Elder Marco <address@hidden>:
> Oi pessoal,
>
> Nessa minha jornada pelo aprendizado do shell, me deparei com um problema.
> Eu criei um script que é pode ser chamado atrvés de vários comandos
> diferentes. Todos esse comandos são colocados são um alias definido no
> arquivo ~/.bashrc. Assim, por exemplo, se eu chamo esse script de 'script',
> e os dois comandos fossem mplayer e gmplayer, eu faria assim:
>
> alias mplayer="script"
> alias gmplayer="script"
>
> Então esse script seria chamando em ambos os casos. Mas ele se encarregaria
> de chamar os programas mplayer ou gmplayer conforme fosse chamado pelo
> usuário. No entanto, é aí que reside o problema porque o script precisa
> conhecer o comando que foi digitado pelo usuário. Se eu usar o argumento $0
> eu teria como resposta apenas 'script' e não mplayer ou gmplayer. Existe uma
> maneira de resolver esse problema que seria fazer assim no arquivo ~/.bashrc
>
> alias mplayer="script mplayer"
> alias gmplayer="script gmplayer"
>
> e então eu recuperaria o nome do programa chamado apenas pelo argumento $1
> do script executado. Mas não é esse o desafio :-) Eu queria recuperar o
> último comando mesmo sem ter de fazer isso. Uma maneira de  recuperar um
> último comando digitado, depois de pesquisas que fiz seria fazer algo assim:
>
> $ ls
> bak  curriculum.odt
> $ ultimo=!!
> $ echo $ultimo
> ls
>
>
> Mas é aí que me atrapalhei: O comando mplayer seria executado em um shell e
> o script em um sub-shell, não? Eu não iria conseguir resolver o problema
> assim e ainda que conseguisse, poderia obter um 'script'. Alguém saberia me
> informar se existe um jeito de obter no final das contas o comando mplayer
> confome exemplifiquei sem recorrer ao recurso que passei?
>
> []'s
>
>
> --
> Elder Marco
>
> Linux User: #471180
>
> "O conhecimento é tristeza: aqueles que mais sabem são os que mais
> profundamente devem lamentar a mais fatal verdade, a árvore do conhecimento
> não é a da vida." (Versos extraídos da tragédia Manfred, de Byron e citado
> por Nietzsche em "Humano, demasiado humano")


Sugestão: use links simbólicos ao invés de aliases.

Pra testar eu criei aqui um arquivo chamado alfa contendo apenas:

#!/bin/bash
echo $0

Setei permissão de execução e criei um link simbólico pra ele chamado beta

chmod +x alfa
ln -s alfa beta

Executando alfa, ele ecoa ./alfa. Executando beta, ele ecoa ./beta.

Trabalhe com esta idéia e reporte.

-- 
Fabiano Caixeta Duarte
Especialista em Redes de Computadores
Linux User #195299
Ribeirão Preto - SP


reply via email to

[Prev in Thread] Current Thread [Next in Thread]