Cómo ejecutar un script desde un directorio diferente en Linux/Ubuntu
Ejecutar scripts desde varias carpetas parece sencillo, pero suele ser un problema. Quizás estés gestionando varios scripts para diferentes tareas o intentando organizar todo en los directorios, y de repente te das cuenta de que no puedes ejecutarlo simplemente escribiendo el nombre del archivo porque no está en tu directorio actual. O quizás los permisos son un fastidio. En fin, esta guía explica algunas formas prácticas de ejecutar scripts en otros lugares, porque, claro, a los sistemas Linux y *nix les encanta complicarlo todo. Espero que te ahorre algunos dolores de cabeza.
Cómo ejecutar scripts desde otros directorios en Linux o Unix
Usando la ruta completa al script
Este es el método más sencillo y directo. Si conoces exactamente dónde se encuentra tu script, simplemente escribe la ruta completa en la terminal. Por ejemplo, si tienes un script en /home/user/scripts/myscript.sh, simplemente ejecuta:
/home/user/scripts/myscript.sh
Pero no lo olvides: tu script debe ser ejecutable; de lo contrario, Linux generará un error de permisos. Puedes comprobarlo con:
ls -l /home/user/scripts/myscript.sh
Si ves algo como -rw-r--r--
y no x
para ejecutar, deberás hacerlo ejecutable:
chmod +x /home/user/scripts/myscript.sh
En algunas configuraciones, ese cambio de permiso podría fallar la primera vez o requerir un reinicio, por lo que un `sudo` adicional podría ser útil si hay problemas de propiedad. Una vez ejecutable, ejecutar la ruta completa funciona de maravilla y evita muchos problemas.
Cambiar al directorio del script
Si está ejecutando varios scripts en la misma carpeta o desea mantener las cosas ordenadas, simplemente cambie el directorio primero:
cd /home/user/scripts
Luego ejecuta el script así:
./myscript.sh
Esto es mucho más claro al trabajar de forma interactiva, ya que es como el modo «permanecer en esa carpeta».No olvides el ./
prefijo: Linux no lo buscará automáticamente en tu PATH.
Consejo profesional: si tu script no está marcado como ejecutable pero confías en él, puedes ejecutarlo bash
directamente con:
bash myscript.sh
Esto evita los permisos, pero úselo con scripts confiables (porque, por supuesto, Linux a veces tiene que hacerlo más difícil de lo que debería).
Usar el comando Bash para ejecutar scripts desde cualquier lugar
Si quieres una forma rápida sin complicarte demasiado con los permisos, simplemente ejecuta:
bash /home/user/scripts/myscript.sh
Esto funciona independientemente de si el script es ejecutable, lo cual resulta bastante práctico al realizar pruebas o al tener prisa. No voy a mentir: en algunas máquinas parece más rápido, pero es un poco menos ordenado para el uso frecuente.
Consejos adicionales y problemas comunes
- Siempre revise su script para detectar errores antes de hacer clic en «Ejecutar», especialmente si hay permisos o rutas involucrados. Nada arruina más la productividad que un error tipográfico oculto en un script.
- Si sigue ejecutando scripts desde el mismo directorio, considere agregarlo a su PATH. De esta forma, podrá ejecutar scripts simplemente escribiendo su nombre; ya no tendrá que recordar la ruta completa cada vez.
- Si la cosa no va bien, intenta depurar ejecutando
bash -x /path/to/yourscript.sh
. Imprimirá cada comando antes de ejecutarlo, lo cual es genial para detectar errores ocultos.
Resumen
Sentirse cómodo ejecutando scripts en diferentes carpetas es una habilidad esencial en Linux. Ya sea por ruta completa, cambiando directorios o simplemente recorriendo bash
, estos métodos ayudan a mantener la flexibilidad. Con el tiempo, encontrarás la combinación que mejor se adapte a tu flujo de trabajo. Y, sinceramente, una vez que te acostumbras, se siente bastante natural, casi como si fuera algo natural. Bueno, casi.
Preguntas frecuentes
¿Puedo ejecutar scripts escritos en otros lenguajes que no sean Bash?
Totalmente. Simplemente especifique el intérprete. Por ejemplo, para scripts de Python, se ejecutaría ` python /path/to/script.py
<sup>…
¿Qué pasa si recibo un error de “Permiso denegado”?
Esto suele deberse a que el script no está marcado como ejecutable. Simplemente ejecute chmod +x /path/to/script
. A veces, puede que tenga que añadir antes sudo
si los permisos están bloqueados.
¿Hay alguna forma de ejecutar scripts automáticamente durante el arranque del sistema?
Sí, puedes agregar scripts al inicio del sistema mediante los archivos de servicio de systemd, o ponerlos en cron (como con crontab -e
), o, para sistemas más antiguos, quizás scripts de inicio. Pero esa es otra historia.
Resumen
- La ruta completa ejecuta scripts de manera rápida y sencilla.
- Cambiar de directorio mantiene las cosas ordenadas para múltiples scripts.
- El uso
bash
funciona como un código de trampa para obtener permisos. - Los permisos importan: asegúrese de que los scripts sean ejecutables.
- Agregar directorios a PATH puede agilizar las tareas repetidas.