Obviamente no existe tal archivo o directorio. Entonces das el camino equivocado. El punto allí no significa "ejecutar". Es solo parte del camino. En shell normalmente escribe archivos para ejecutar o comandos (que de hecho también son archivos) :)
Pithikos
deshazte de ese período de inicio e inténtalo de nuevo. Alternativamente, ~ / scripts / someScript también funcionará. también tenga en cuenta `` qoutes en mente, y los programas ejecutivos ($ man exec)
j0h
Respuestas:
61
El punto inicial en su comando significa "relativo al directorio actual". Elimínelo y se referirá a "el archivo someScripten el directorio /home/user/scripts:
/home/user/scripts/someScript
Si obtiene "Permiso denegado", es porque no tiene permisos suficientes para acceder al archivo en el directorio de otros usuarios o porque el archivo no es ejecutable. Para hacerlo ejecutable, ejecute:
Si su script necesita acceder a los recursos en la misma carpeta desde la que se está ejecutando, y lo ha especificado como rutas relativas, entonces su script se romperá.
Siempre agrego un cd $(dirname $0)al encabezado de mi script para que la carpeta que contiene el script sea la carpeta raíz.
Si hace que el script sea ejecutable chmod 755 <nameofscript>para ejecutarlo, solo necesita escribir la ruta al script.
Cuando vea que ./scriptse usa, le dice al shell que el script está ubicado en el mismo directorio que lo está ejecutando. Para usar la ruta completa, escriba sh /home/user/scripts/someScript.
sh /path/to/filees diferente de /path/to/file. shejecuta /bin/shque está vinculado a /bin/dash.
Lekensteyn
Simplemente aclarando algo en los ejemplos que ves en la red, normalmente ves sh ./somescriptque también se puede escribir como 'sh / path / to / script / scriptitself'.
Respuestas:
El punto inicial en su comando significa "relativo al directorio actual". Elimínelo y se referirá a "el archivo
someScript
en el directorio/home/user/scripts
:Si obtiene "Permiso denegado", es porque no tiene permisos suficientes para acceder al archivo en el directorio de otros usuarios o porque el archivo no es ejecutable. Para hacerlo ejecutable, ejecute:
fuente
Si su script necesita acceder a los recursos en la misma carpeta desde la que se está ejecutando, y lo ha especificado como rutas relativas, entonces su script se romperá.
Siempre agrego un
cd $(dirname $0)
al encabezado de mi script para que la carpeta que contiene el script sea la carpeta raíz.fuente
Eliminar el
.
Si hace que el script sea ejecutable
chmod 755 <nameofscript>
para ejecutarlo, solo necesita escribir la ruta al script.Cuando vea que
./script
se usa, le dice al shell que el script está ubicado en el mismo directorio que lo está ejecutando. Para usar la ruta completa, escribash /home/user/scripts/someScript
.fuente
sh /path/to/file
es diferente de/path/to/file
.sh
ejecuta/bin/sh
que está vinculado a/bin/dash
.sh ./somescript
que también se puede escribir como 'sh / path / to / script / scriptitself'.