Respuestas:
$prompt: /path/to/script
y presione enter. Tenga en cuenta que debe asegurarse de que el script tenga permisos de ejecución.
/path/to
directorio, por ejemplo, con el cd /path/to
comando, puede ingresar ./script
para ejecutar su script.No olvide, en este caso, el './' antes del 'script'
Otra forma más de ejecutarlo (esta vez sin configurar los permisos de ejecución):
bash /path/to/scriptname
cd al directorio que contiene el script, o colócalo en una carpeta bin que está en tu $ PATH
luego escribe
./scriptname.sh
si en el mismo directorio o
scriptname.sh
si está en la carpeta bin.
./scriptname.sh
trabaja para mi pero scriptname.sh
da scriptname.sh: command not found
. -rwxr-xr-x
son sus permisos.
cd
cualquier parte comete otro malentendido común para principiantes. A menos que la secuencia de comandos internamente tenga dependencias que requieran que se ejecute en un directorio en particular (por ejemplo, la necesidad de leer un archivo de datos que la secuencia de comandos inexplicablemente no proporciona una opción para apuntar), nunca debería necesitar ir a cd
ningún lugar para ejecutarlo, y muy a menudo no querrá.
Podrías hacerlo:
sh scriptname.sh
sh
es un enlace simbólico bash
, o si la secuencia de comandos no utiliza cualquier construcción específica de Bash. En el primer caso, usar en bash
lugar de sh
es la única solución portátil correcta; en el último caso, no es la respuesta correcta a esta pregunta en particular, porque el OP pidió consejos para un script Bash específicamente. Perpetrar una respuesta incorrecta es irresponsable; los usuarios que no logran captar la diferencia publican frecuentemente aquí, y necesitan que se les muestre por qué esta respuesta "funcionó para mí" no funcionó para ellos.
En primer lugar hay que hacerlo ejecutable usando: chmod +x name_of_your_file_script
.
Después de hacerlo ejecutable, puede ejecutarlo usando ./same_name_of_your_file_script
Cambie su directorio donde se encuentra el script usando el comando cd
Luego escribe
bash program-name.sh
cd
ningún lado; puede especificar un nombre de ruta arbitrariamente complejo como argumento bash
; de hecho, cualquier programa que tenga un argumento de nombre de archivo funciona de esta manera (o está terriblemente roto).
Este es un hilo antiguo, pero lo encontré y me sorprende que nadie haya dado una respuesta completa todavía. Así que aquí va ...
P: ¿Cómo ejecuto esto en Terminal?
Confusiones y conflictos:
sudo
que haga nada de esto. Este comando está reservado para ejecutar comandos como otro usuario o un usuario 'root' (administrador). Gran publicación aquí .(Una persona que recién está aprendiendo a ejecutar scripts no debería usar este comando a menos que exista una necesidad real, como instalar un nuevo programa. Un buen lugar para poner sus scripts es en su carpeta ~ / bin. Puede llegar allí escribiendo cd ~/bin
o cd $HOME/bin
desde el indicador de la terminal. Tendrás permisos completos en esa carpeta).
Para "ejecutar este script" desde la terminal en un sistema de tipo Unix / Linux, debe hacer tres cosas:
Dígale al sistema la ubicación del script. (elegir uno)
/path/to/script.sh
). Puede verificar la ruta completa escribiendo pwd
o echo $PWD
en la terminal../
para la ruta (por ejemplo ./script.sh
). Fácil.PATH
y simplemente escriba el nombre (por ejemplo script.sh
). Puede verificar el sistema PATH
escribiendo echo $PATH
o echo -e ${PATH//:/\\n}
si desea una lista más ordenada.Dígale al sistema que el script tiene permiso para ejecutarse. (elegir uno)
chmod +x /path/to/script.sh
en la terminal.chmod 755 /path/to/script.sh
si prefiere los números. Hay una gran discusión con un gráfico genial aquí .Dígale al sistema el tipo de script. (elegir uno)
BASH /path/to/script.sh
o PHP /path/to/script.php
) Si el script tiene una extensión, como .php o .py, es parte del nombre del script y debe incluirlo.#!/bin/bash
) en su ejemplo. Si tiene eso como la primera línea de su script, el sistema usará ese programa para ejecutar el script. No es necesario escribir programas ni utilizar extensiones.PATH
uso #!/usr/bin/env
seguido del nombre del programa (por ejemplo, #!/usr/bin/env bash
o #!/usr/bin/env python3
). Hay pros y contras que se analizan a fondo aquí .script.sh
y script.php
son los nombres de archivo literales de estos scripts, y que si pones una extensión en el nombre del archivo, debes incluirla cuando ejecutes el script (y viceversa; si el script no lo hace) No tengo una extensión, no ponga una). Esto es diferente, por ejemplo, de DOS, donde puede omitir .bat
o .exe
del nombre del archivo, y los archivos deben tener una extensión de un conjunto pequeño para que se consideren ejecutables.
Si se encuentra en un directorio o carpeta donde el archivo de secuencia de comandos está disponible, simplemente cambie el permiso del archivo en modo ejecutable haciendo
chmod +x your_filename.sh
Después de eso, ejecutará el script usando el siguiente comando.
$ sudo ./your_filename.sh
Sobre el "." representan el directorio actual. ¡Nota! Si no se encuentra en el directorio donde está presente el archivo de script bash, cambie el directorio donde se encuentra el archivo utilizando
cd Directory_name/write the complete path
mando. De lo contrario, su secuencia de comandos no se puede ejecutar.
sudo
está mal y potencialmente terriblemente mal si lo usa en un script que no es de confianza y que abusa de los poderes que le dio innecesariamente.
cd
alguna parte es difícil de entender, pero probablemente también incorrecto.
chmod +x scriptname
y luego./scriptname
.