Cómo ejecutar un script desde la terminal

Cómo ejecutar un script desde la terminal

Hola, me gustaría ejecutar un script desde la terminal, ¿hay alguna forma de hacerlo? Por ejemplo: si tengo un script en Python, normalmente lo ejecutaría con este comando:

python script.py

¿Cómo puedo ejecutar este script simplemente escribiendo el nombre del archivo del script en la terminal (incluso si estoy en otro directorio)?

Otra respuesta que encontré bastante útil: ¿Cómo ejecutar scripts sin escribir la ruta completa?

Puedes simplemente crear un enlace simbólico. Créelo en /usr/local/bin. Todo lo que necesitas es ejecutar el comando:

sudo ln -s /full/path/to/your/file /usr/local/bin/name_of_new_command

Después de eso deberías hacer que tu archivo sea ejecutable:

chmod +x /full/path/to/your/file

Ahora deberías poder ejecutar name_of_new_command en cualquier momento en tu terminal.

Tenga en cuenta que esta es una buena solución sólo para el uso doméstico de Linux.

Respuesta1

Coloque esta línea suponiendo .bashrcque está usando bash como shell:

export PATH=/path/to/your/script/:"$PATH"

Puede usar vi, nano o gedit para editar esta línea al final del archivo. Asegúrese de que su script esté configurado en modo ejecutable, si es un script bash:

chmod +x script.sh 

O si es un script de Python:

chmod +x script.py

En su script indique su tipo en la primera línea. Si es Python:

#!/bin/python 

Si es bash:

#!/bin/bash

Respuesta2

Quizás la forma más sencilla de hacer esto es colocar su script $HOME/biny asegurarse de que los permisos estén configurados como ejecutables:

chmod +x  $HOME/bin/script.py

Ahora deberías poder ejecutar el script desde cualquier directorio...

Un par de puntos más a tener en cuenta:

  1. Asegúrese de que $HOME/binesté en su $PATH, para Ubuntu esto estará configurado de forma predeterminada, $HOME/.profilepero no está de más verificarlo.
  2. Asegúrese de que su secuencia de comandos Python tenga el conjunto 'shebang' apropiado:

    #!/usr/bin/env python
    

información relacionada