<Anterior | Conteúdo | Próxima>
Localização do arquivo de script
Com as permissões definidas, podemos agora executar nosso script:
[me @ linuxbox ~] $ ./Olá Mundo
Olá Mundo!
[me @ linuxbox ~] $ ./Olá Mundo
Olá Mundo!
Para que o script seja executado, devemos preceder o nome do script com um caminho explícito. Se não o fizermos, obteremos isto:
[me @ linuxbox ~] $ Olá Mundo
bash: hello_world: comando não encontrado
[me @ linuxbox ~] $ Olá Mundo
bash: hello_world: comando não encontrado
Por que é isso? O que torna nosso script diferente de outros programas? Ao que parece, nada. Nosso script está bom. Sua localização é o problema. De volta ao Capítulo 11, discutimos o PATH variável de ambiente e seu efeito em como o sistema procura por programas executáveis. Para recapitular, o sistema pesquisa uma lista de diretórios cada vez que precisa encontrar um programa executável, se nenhum caminho explícito for especificado. É assim que o sistema sabe executar
/ bin / ls quando digitamos ls na linha de comando. O diretório / bin é um dos diretórios que o sistema pesquisa automaticamente. A lista de diretórios é mantida em uma variável de ambiente chamada PATH. A variável PATH contém uma lista separada por dois pontos de diretórios a serem pesquisados. Podemos ver o conteúdo de PATH:
Localização do arquivo de script
[me @ linuxbox ~] $ echo $ PATH
/ home / me / bin: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin:
/ bin: / usr / games
[me @ linuxbox ~] $ echo $ PATH
/ home / me / bin: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin:
/ bin: / usr / games
Aqui vemos nossa lista de diretórios. Se nosso script estivesse localizado em qualquer um dos diretórios da lista, nosso problema estaria resolvido. Observe o primeiro diretório da lista,
/ home / me / bin. A maioria das distribuições do Linux configura a variável PATH para conter um diretório bin no diretório inicial do usuário, para permitir que os usuários executem seus próprios programas. Portanto, se criarmos o diretório bin e colocarmos nosso script dentro dele, ele deve começar a funcionar como outros programas:
[me @ linuxbox ~] $ bin mkdir [me @ linuxbox ~] $ mv hello_world bin [me @ linuxbox ~] $ Olá Mundo
Olá Mundo!
[me @ linuxbox ~] $ bin mkdir [me @ linuxbox ~] $ mv hello_world bin [me @ linuxbox ~] $ Olá Mundo
Olá Mundo!
E assim é.
Se o PATH variável não contém o diretório, podemos adicioná-lo facilmente incluindo esta linha em nosso .bashrc arquivo:
exportar PATH = ~ / bin: "$ PATH"
exportar PATH = ~ / bin: "$ PATH"
Depois que essa alteração for feita, ela terá efeito em cada nova sessão de terminal. Para aplicar a mudança à sessão de terminal atual, devemos fazer com que o shell leia novamente o .bashrc Arquivo. Isso pode ser feito por “sourcing”:
[me @ linuxbox ~] $ . .bashrc
[me @ linuxbox ~] $ . .bashrc
O ponto (.) comando é um sinônimo para o fonte comando, um shell embutido que lê um arquivo especificado de comandos do shell e o trata como entrada do teclado.
Nota: Ubuntu (e a maioria das outras distribuições baseadas em Debian) adiciona automaticamente o
diretório ~ / bin para a variável PATH se o diretório ~ / bin existir quando o arquivo .bashrc do usuário for executado. Portanto, em sistemas Ubuntu, se criarmos o diretório ~ / bin e, em seguida, efetuar logout e login novamente, tudo funcionará.