Então eu tentei experimentado e criou um alias
em .bashrc
. No entanto, quando testo o comando, recebo:
[rkahil@netmon3 ~]$ menu
-bash: menu: command not found
Aqui está o que eu tenho no .bashrc
arquivo:
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
alias menu='./menuScript.sh'
alias vi='vim'
O engraçado é que quando eu criei o pseudônimo vi
, funcionou. Mas o menu não. Procurei posts anteriores no UnixStackExchange e tentei seguir outros posts, mas sem sucesso. Alguém mais tem sugestões?
./menuScript.sh: command not found
No such file or directory
, que ainda não é o mesmo que o erro do OP. O ponto ainda permanece - seria melhor com um caminho absoluto, a menos que o alias sempre seja usado apenas no diretório em quemenuScript.sh
reside.Respostas:
Você deveria tentar com
alias menu='bash ./menuScript.sh'
. No momento, não estou em uma máquina Linux, portanto não posso testá-la, mas deve funcionar. Quando você chama o alias, ele não sabe o que fazer com o caminho, portanto, você deve incluir obash
no início.E redefinir o terminal ajuda depois de fazer a alteração.
fonte
menuScript.sh
que não tenha sidochmod
editado para executável; nesse caso, a mensagem de erro teria sido "Permissão negada". Suspeito que forçar uma releitura do.bashrc
arquivo seja a resposta. ………………… PS O shell sabe o que fazer com o caminho da mesma maneira que faz se o usuário digitar./menuScript.sh
- tentando executar o arquivo.Quando você faz
você cria um apelido que diz "esse arquivo", mas não diz o que realmente deve fazer com ele.
No entanto, se você fizer
ou
Você está dizendo execute esse arquivo.
fonte
Você se lembrou de ter originado seu arquivo ~ / .bashrc depois de fazer as alterações? Como as alterações entram em vigor no seu arquivo .bashrc após reiniciar o computador ou simplesmente buscar o arquivo.
fonte
.bashrc
, faça o seguinte ...". Por outro lado, perguntas esclarecedoras (por exemplo, "Você esqueceu de ...?") Parecem mais adequadas para comentários. Não seria preciso reformular muito para fazer esta postagem parecer muito mais adequada a uma resposta.source ~/.bashrc
ou. ~/.bashrc
, poderá também abrir outro shell. É simples assim. Não é necessário reiniciar.A razão pela qual ele trabalhou
vim
é porque esse é um programa que já pode ser chamado sem um caminho direto. Você não precisa dizer explicitamente "Eu quero que isso seja executado como um programa" porquevim
já é um. É codificado no sistema operacional que, quando recebe o comandovim
, executa o arquivo/usr/bin/vi
ou onde quer que esteja o programa real.fonte
vim
disponível no$PATH
que pode ser um executável binário, um script executável ou até mesmo um link simbólico para outro programa. Se você remover a entrada,vim
ela deixará de estar disponível para os usuários.ifvi
que mora no meu$HOME/bin
(que acontece no meu$PATH
). Eu apenas o uso exatamente da mesma maneira que posso executar um binário instalado no sistema. Realmente não importa que seja um programa personalizado.Há dois problemas com o alias
Exige que você esteja em um diretório específico ao chamar o alias. Se você estiver em um diretório onde
menuScript.sh
não existe, o alias falhará na execução.Seria melhor se você especificasse o caminho absoluto completo para o
menuScript.sh
script ao definir o alias, por exemplo,ou similar.
Como outros já disseram, outra razão pela qual o alias pode falhar é que o script não é executável ou que possui uma
#!
linha inválida . Verifique se o script é executável come que a primeira linha do script é
ou qualquer que seja o caminho
bash
(ou qualquer shell para o qual o script seja escrito) em seu sistema.fonte