Estoy tratando de ejecutar un script que está en un directorio para el que tengo derechos de administrador, pero estoy intentando ejecutarlo desde algún lugar que no sea el directorio ... I.E. es una carga generada en un script que lee todos los archivos en el directorio y da una salida basada en esos archivos. Pero cuando trato de llamarlo desde el terminal, no se ejecuta a menos que el directorio activo sea el directorio donde se encuentra el script, ¿es esto un problema de permisos?
He intentado ejecutarlo de esta manera:
sh /path/to/file/FILE
./path/to/file/FILE
pero cuando yo cd
al directorio y ejecutar
./FILE
funciona bien
Permisos para mi cuenta:
drwxrwxr-x 5 edennis edennis 4096 Nov 14 14:35 .
Permisos para script:
-rwxrwxr-x 1 edennis edennis 3644 Nov 14 11:45 zScript
Permisos para archivos de script está accediendo:
-rw-rw-r-- 1 edennis edennis 10437424 Oct 15 10:27 document.txt
Contenido del guión:
#!/bin/bash
for file in *.txt
do
echo "this is my favorite file " "$file" >> output.txt;
done
sh /path/to/file/FILE
y./path/to/file/FILE
no son equivalentes? El primero resolverá la ruta en relación con la raíz del sistema de archivos (/
), mientras que el segundo funcionará en relación con el directorio actual. Además, puedes saltarte../
Si no está ejecutando el script en un directorio actual.