Respuestas:
$prompt: /path/to/scripty 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/tocomando, puede ingresar ./scriptpara 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.shtrabaja para mi pero scriptname.shda scriptname.sh: command not found. -rwxr-xr-xson sus permisos.
cdcualquier 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 cdningún lugar para ejecutarlo, y muy a menudo no querrá.
Podrías hacerlo:
sh scriptname.sh
shes 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 bashlugar de shes 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
cdningú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:
sudoque 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 ~/bino cd $HOME/bindesde 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 pwdo echo $PWDen la terminal../para la ruta (por ejemplo ./script.sh). Fácil.PATHy simplemente escriba el nombre (por ejemplo script.sh). Puede verificar el sistema PATHescribiendo echo $PATHo 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.shen la terminal.chmod 755 /path/to/script.shsi 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.sho 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.PATHuso #!/usr/bin/envseguido del nombre del programa (por ejemplo, #!/usr/bin/env basho #!/usr/bin/env python3). Hay pros y contras que se analizan a fondo aquí .script.shy script.phpson 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 .bato .exedel 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.
sudoestá 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.
cdalguna parte es difícil de entender, pero probablemente también incorrecto.
chmod +x scriptnamey luego./scriptname.