bash script não está funcionando

-2

Eu escrevi este script de alias de tipo simples no meu diretório bin em home

#!/bin/sh
alias kp='ls –L'
alias ldir='ls –aF'
alias copy='cp'

e salvou no nome myenv. Então mudei o modo usando

chmod +x /bin/myenv

execute-o usando o comando

myenv

mas depois disso quando eu uso o kp ele diz que o comando kp não foi encontrado. Por quê?

    
por Tamim Addari 24.06.2013 / 10:05

2 respostas

2

Seu script é executado em um sub-shell por padrão. (Ele abre um novo shell e executa seu script. Depois que o script terminar a execução, seu ambiente modificado será destruído.)

Se você quiser alterar as configurações atuais do seu ambiente de shell, você precisa:

source myenv

ou:

. myenv

Veja man bash Comandos / fontes do Shell Builtin .

    
por lgarzo 24.06.2013 / 10:17
0

Primeiro, porque o caractere que você usou em alias kp='ls –L' e alias ldir='ls –aF' não é o mesmo com - (você pode ver que isso é um pouco mais longo). Experimente:

#!/bin/sh
alias kp='ls -L'
alias ldir='ls -aF'
alias copy='cp'

Basta copiar e colar a partir de cima.

Segundo, se você quiser que o script tenha o efeito esperado, basta colocar essa linha em ~/.bashrc file:

source /bin/myenv

De qualquer forma, a melhor maneira de criar aliases no Ubuntu é usar este método: link .

    
por Radu Rădeanu 24.06.2013 / 10:20