Como você pode criar um comando com um arquivo Bash?

1

Eu criei um arquivo .sh (ou bash) e gostaria de fazer um comando no GNOME-Terminal para o arquivo. Eu sei que você executa um arquivo .sh por:

./file.sh

Depois de compilado, também sei que todo o comando está armazenado em /bin/bash . Mas eu não consigo descobrir como eu posso criar um comando que eu possa chamar quando eu estiver em qualquer diretório no terminal, algo como:

abc

executaria abc.h , etc. Alguma sugestão?

    
por 0101011 26.04.2013 / 23:31

2 respostas

3

Embora a resposta de Radu esteja absolutamente correta, eu sinto que é um pouco incompleto para o iniciante que não sabe a localização de certos arquivos, então aqui está um passo-a-passo no segundo método (usando ~/bin ). Se você quiser armazenar os arquivos em algum lugar diferente de ~/bin , siga a etapa 1, caso contrário, ignore-a e lembre-se de que usará ~/bin como pastas de scripts.

  1. Abra um terminal e execute o seguinte:

    nano .profile
    

    Você deve ver, no final do arquivo:

    # set PATH so it includes user's private bin if it exists
    if [ -d "$HOME/bin" ] ; then
        PATH="$HOME/bin:$PATH"
    fi
    

    Se você não vê, tente usar nano .bash_profile . Lembre-se de que você deve estar em ~/ , ou seja, /home/YOUR_USERNAME

    Isso informa ao bash onde estão os scripts do usuário. O padrão é /home/YOUR_USERNAME/bin , que é "abreviado" como $HOME/bin ou ~/bin . Você pode alterá-lo para qualquer pasta na qual gostaria de armazenar seus scripts. A mina é ~/.bin - igual à original, mas oculta.

  2. Se você já emitiu chmod +x script.sh , simplesmente mova seus scripts para a pasta na qual você os armazenará - crie-o se ele não existir. Dentro dessa pasta, se você armazenar seus scripts como file.sh , precisará executar file.sh toda vez, portanto, armazene-os como file - sem extensões.

por Alex 27.04.2013 / 01:01
1

O shell mantém uma lista de diretórios onde os arquivos executáveis (programas) são mantidos e apenas procura os diretórios nessa lista. Se ele não encontrar o programa depois de pesquisar em cada diretório da lista, ele emitirá a famosa mensagem command not found error . Esta lista de diretórios é chamada de caminho . Você pode visualizar a lista de diretórios com o seguinte comando:

echo $PATH

Você pode adicionar diretórios ao seu caminho com o seguinte comando, em que *directory* é o nome do diretório que você deseja adicionar:

export PATH=$PATH:*directory*

Uma maneira melhor seria editar seu arquivo .bash_profile para incluir o comando acima. Dessa forma, isso seria feito automaticamente toda vez que você fizer login.

A maioria das distribuições Linux modernas encoraja uma prática na qual cada usuário tem um diretório específico para os programas que ele usa pessoalmente. Esse diretório é chamado de bin e é um subdiretório do seu diretório inicial. Se você ainda não tem um, crie-o com o seguinte comando:

mkdir bin

Mova seu script para o novo diretório bin e está tudo pronto. Agora você só precisa digitar:

my_script

e seu script será executado.

    
por Radu Rădeanu 26.04.2013 / 23:49