Tenho um script na minha máquina virtual que gostaria de executar sem[]$ ./myscript
[studentuser@CentosStudentSvr ~]$ myscript
-bash: iduser: comando não encontrado
caso contrário, ocorrerá erros:
-bash: iduser: command not found
como posso consertar isso?
Obrigado
Responder1
Se você digitar myscript
, seu shell procurará em seu PATH para ver se consegue encontrar o comando chamado myscript
. Ao contrário do Windows, seu diretório atual não está no seu caminho por padrão.
O que significa que você deseja:
- adicione-o ao seu caminho por enquanto (munualmente)
- adicione-o ao seu caminho sempre que iniciar (edite o script de inicialização na sua pasta. Quais dependem de qual shell você usa. Geralmente .profile ou .bashsomething)
- Ou especifique o caminho completo para o binário. Ex.
./iduser
ou/home/user229525/iduser
.
Se o diretório atual ( .
) já estiver em seu caminho, verifique seu programa.
- É executável? (ls -l, procure em
x
rwx) - Se for um script, começa com um shebang? (por exemplo, é a primeira linha
#!/usr/bin/env bash
).
Responder2
Bash procura os “comandos” nos caminhos enumerados na variável $PATH. Mova o script para a /usr/bin
ou outra pasta mencionada em $PATH (ou adicione a pasta em que você tem o script ao $PATH).
Além disso, você pode definir um alias para o bash em execução alias myscript="bash /path/to/script/myscript"
. (verifique você mesmo a sintaxe, não tenho certeza no momento)