Obviamente, não existe esse arquivo ou diretório. Então você dá o caminho errado. O ponto não significa "executar". É apenas parte do caminho. No shell você normalmente digita ou arquivos a serem executadas ou comandos (que na verdade também são arquivos) :)
Pithikos
Livre-se desse período inicial e tente novamente. Como alternativa, ~ / scripts / someScript também funcionará. também mantenha `` qoutes em mente, e os programas exec ($ man exec)
j0h
Respostas:
61
O ponto inicial no seu comando significa "relativo ao diretório atual". Remova-o e ele se referirá a "o arquivo someScriptno diretório /home/user/scripts:
/home/user/scripts/someScript
Se você receber "Permissão negada", é porque você não tem permissões suficientes para acessar o arquivo no diretório de outros usuários ou porque o arquivo não é executável. Para torná-lo executável, execute:
Se o seu script precisar acessar recursos na mesma pasta em que está sendo executado e você o especificar como caminhos relativos, o script será interrompido.
Eu sempre adiciono um cd $(dirname $0)ao cabeçalho do meu script para que a pasta que contém o script seja a pasta raiz.
Se você tornar o script executável chmod 755 <nameofscript>para executá-lo, precisará digitar apenas o caminho para o script.
Quando você vê ./scriptsendo usado, diz ao shell que o script está localizado no mesmo diretório que você está executando. Para usar o caminho completo, você digita sh /home/user/scripts/someScript.
sh /path/to/fileé diferente de /path/to/file. shé executado /bin/shcom o link simbólico /bin/dash.
precisa saber é o seguinte
Apenas deixando claro os exemplos que você vê na rede, normalmente você vê sh ./somescriptquais também podem ser digitados como `sh / path / to / script / scriptitself '.
Respostas:
O ponto inicial no seu comando significa "relativo ao diretório atual". Remova-o e ele se referirá a "o arquivo
someScript
no diretório/home/user/scripts
:Se você receber "Permissão negada", é porque você não tem permissões suficientes para acessar o arquivo no diretório de outros usuários ou porque o arquivo não é executável. Para torná-lo executável, execute:
fonte
Se o seu script precisar acessar recursos na mesma pasta em que está sendo executado e você o especificar como caminhos relativos, o script será interrompido.
Eu sempre adiciono um
cd $(dirname $0)
ao cabeçalho do meu script para que a pasta que contém o script seja a pasta raiz.fonte
Remova o
.
Se você tornar o script executável
chmod 755 <nameofscript>
para executá-lo, precisará digitar apenas o caminho para o script.Quando você vê
./script
sendo usado, diz ao shell que o script está localizado no mesmo diretório que você está executando. Para usar o caminho completo, você digitash /home/user/scripts/someScript
.fonte
sh /path/to/file
é diferente de/path/to/file
.sh
é executado/bin/sh
com o link simbólico/bin/dash
.sh ./somescript
quais também podem ser digitados como `sh / path / to / script / scriptitself '.