Você deve fazer isso, porque o caminho atual ( pwd
) não está no caminho de pesquisa dos arquivos executáveis.
Digite isto no seu console:
echo $PATH | tr ':' '\n'
Cada pasta impressa está no caminho de busca dos arquivos executáveis (nessa ordem).
Agora, se você deseja executar um arquivo de um diretório diferente , é necessário fornecer o caminho completo (relativo ou absoluto).
./script.sh
significa o diretório atual ( ./
, relativo a onde você está) e o nome do arquivo ( script.sh
). Você pode igualmente usar o caminho completo (a partir da pasta raiz /
) para o seu arquivo (por exemplo, /home/guo/script.sh
, se for o seu nome de usuário e quando o arquivo estiver em seu diretório pessoal).
Como uma dica, se você usa esse arquivo regularmente, sugiro criar um diretório local /bin
( ~/bin
, como dentro de seu diretório pessoal) e, em seguida, colocar export PATH="$HOME/bin:$PATH"
em seu .bashrc
, por exemplo. E, em seguida, coloque seus scripts nesse diretório.
Outra coisa: sugiro não usar 777 como permissões para executá-lo. Em vez disso, sugiro 755 , portanto, somente você tem permissão para substituir o arquivo. Se você quiser tornar um arquivo executável use apenas chmod +x script.sh
, ele geralmente fará o que você quer.
De maneira semelhante à descrita acima, é possível adicionar o diretório "atual", ao caminho: export PATH=".:$PATH"
, mas isso não é aconselhável. Eu aconselho, usando um diretório privado ( ~/bin
) para esses casos de uso.