como executar um script bash sem digitar ./ [duplicado]

11

Ele tem me incomodado há muito tempo e estou muito cansado disso. Por exemplo, há um script chamado testcript que compara dois diretórios. Na aula o prof só pode digitar

testscript dir1 dir2

para obter a saída, mas eu tenho que adicionar ./ antes do teste e aperte enter. Em seguida, insira dir1 e dir2 próxima linha

Como o professor fez isso? É algo com a coisa de bashrc? Eu nunca entendo como isso funciona. Se estiver relacionado, explique em linguagem simples, já que sou novo no Linux. Obrigada!

    
por asura 15.10.2014 / 00:09

4 respostas

9

Você precisa adicionar o diretório com seu script à variável PATH :

export PATH="$PATH:/path/to/dir"

ou você pode até adicionar o diretório current ao PATH :

export PATH="$PATH:."

O último tem alguma desvantagem de segurança embora. / p>     

por 15.10.2014 / 00:15
2

Você deve colocar a seguinte linha no final do seu arquivo .bashrc:

PATH=$PATH:.    

Para fazer isso, você pode digitar este comando:

echo "PATH=$PATH:." >> ~/.bashrc    

Você deve então iniciar um novo shell para que ele funcione

    
por 15.10.2014 / 00:22
1

Outra maneira de fazer isso é adicionar um alias ao seu arquivo bashrc:

vim ~/.bashrc

É assim que meu arquivo bashrc se parece:

# .bashrc

alias coredb='psql -h 172.x.x.x -U jboss jbossdb'
alias psql='psql -h 172.x.x.x -U rkah portal_db'
alias opendb='psql -h 172.x.x.x -U rkah portal_db'


# Source global definitions

if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
alias menu='bash ./menuScript.sh'
alias vi='vim'

Se você olhar onde diz alias, é exatamente como você pode adicioná-lo. Então, por exemplo, você entraria em:

alias testscript='bash ./testscript.sh'

    
por 15.10.2014 / 00:19
0

Outra alternativa que você pode considerar é coletar esses scripts e programas executáveis especiais em um diretório e colocá-los na instrução PATH. Assim, você não teria que usar o temido "." (ponto) na variável PATH, mas ainda assim faria o que você queria.

    
por 15.10.2014 / 00:30