como executar um script bash sem digitar ./ ​​

como executar um script bash sem digitar ./ ​​

Isso tem me incomodado há muito tempo e estou realmente cansado disso. Por exemplo, existe um script chamado testscript que compara dois diretórios. Na aula o professor pode apenas digitar

testscript dir1 dir2

para obter a saída, mas preciso adicionar ./ ​​antes do testscript e pressionar Enter. Em seguida, insira dir1 e dir2 na próxima linha

Como o prof fez isso? É algo com o bashrc? Eu nunca entendo como isso funciona. Se estiver relacionado, explique em linguagem simples e simples, já que sou novo no Linux. Obrigado!

Responder1

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

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

ou você pode até adicionaratualdiretório para PATH:

export PATH="$PATH:."

O último tem algunsdesvantagem de segurançano entanto.

Responder2

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

vim ~/.bashrc

Esta é a aparência do meu arquivo bashrc:

# .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 assim que você pode adicioná-lo. Então, por exemplo, você inseriria:

alias testscript='bash ./testscript.sh'

Responder3

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

PATH=$PATH:.    

Para fazer isso você pode digitar este comando:

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

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

Responder4

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.

informação relacionada