unalias em script

1. unalias em script

Perfil removido
removido

(usa Nenhuma)

Enviado em 22/01/2013 - 15:47h

Pessoal, estou com um problema.

Eu possuo um alias com o nome abc que executa um arquivo de script, mas nesse script eu quero remover o alias, mas não funciona
Vou mostrar:
------------------------------------------------
teste@bt:~$ alias | grep aaa
alias aaa='/home/teste/./abc'

teste@bt:~$ cat ./abc
#!/bin/bash
echo ok
unalias abc

teste@bt:~$ aaa
ok
/home/teste/./abc: line 3: unalias: abc: not found

teste@bt:~$ alias | grep aaa
alias aaa='/home/teste/./abc'
------------------------------------------------

Eu preciso que o script remova o alias que está no sistema, mas não funciona, ele só funciona caso o comando alias caso tenha setado pelo próprio script

Alguém tem alguma solução?
Grato


  


2. Re: unalias em script

Paulo
paulo1205

(usa Ubuntu)

Enviado em 22/01/2013 - 16:30h

Você cria o alias aaa e quer remover o alias abc? Parece-me razoável que não funcione.

Além disso, o alias é uma coisa definida dentro de cada processo do shell. Aliases normalmente são definidos dentro de arquivos que são carregados no momento do login, dentro de /etc/profile e ~/.bash_profile/~/.bash_login/~/.profile, ou ao carregar um shell interativo que não é de login (por exemplo, quando se abre um emulador de terminal em modo gráfico), quando se lê o ~/.bashrc. Shells usados em scripts não são de login nem interativos, e não lêem nenhum desses arquivos, a não ser que você tenha definido a variável de ambiente BASH_ENV, para que esses shells não intereativos leiam o arquivo apontado pelo valor de tal variável. Assim sendo, acho que provavelmente você não deveria se preocupar em desfazer o alias dentro do script.


3. Re: unalias em script

Perfil removido
removido

(usa Nenhuma)

Enviado em 22/01/2013 - 16:57h

Grato pela resposta, meu amigo
Me expressei mal, era para ter escrito "unalias aaa" e não o "unalias abc"

Agora entendi o motivo de não funcionar, eu não sabia que os scripts eram executados em shell diferente da que está sendo utilizada.

Também consegui resolver meu problema utilizando o comando "source" para executar o script e resolver meu problema, veja bem:

teste@bt:~$ alias | grep aaa
alias aaa='./aaa'
teste@bt:~$ aaa
./aaa: line 1: unalias: aaa: not found
teste@bt:~$ alias aaa='source ~/./aaa'
teste@bt:~$ aaa
teste@bt:~$ alias | grep aaa







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts