Cómo ejecutar .sh en linux

En Linux, los archivos que tienen la extensión de nombre de archivo .sh suelen ser scripts de shell, que son programas que son interpretados por el comando shell. Los scripts de shell no necesitan tener una extensión de nombre de archivo. De hecho, pueden ser nombrados de cualquier manera. Por razones históricas, sin embargo, a menudo tienen la extensión .sh .

Hacer shell scripts ejecutables.

Los scripts de shell deben estar marcados como ejecutables antes de poder ejecutarlos. Puede verificar los permisos de un archivo, también conocido como su modo de archivo, viendo una lista larga de directorios con el comando ls -l . Si proporciona el nombre del archivo, recibirá la información solo para ese archivo. Por ejemplo, aquí tenemos un archivo llamado somefile, y vemos los permisos con el comando ls -l somefile :

Los diez caracteres " -rw-r - r-- " representan el modo de archivo de algún archivo. Para obtener más información sobre los permisos de archivos, consulte ¿Qué son los permisos y cómo funcionan?

Aquí, el modo de archivo indica que podemos leer y escribir algún archivo, pero no podemos ejecutarlo. Podemos establecer el permiso de ejecución utilizando el comando chmod, que cambia el modo de archivo:

El comando chmod u + x somefile establece el bit de permiso de ejecución para el propietario del archivo. Puede ver que la línea de permisos ahora tiene una x en el cuarto lugar, que representa los permisos de ejecución del propietario en el archivo. Además, tenga en cuenta que el nombre del archivo aparece en color (aquí, se muestra en verde). El color puede ser diferente en su sistema, pero muchas distribuciones de Linux están configuradas para indicar archivos ejecutables con un color distinto al ejecutar el comando ls .

Puede seguir este mismo proceso para cualquier archivo de script .sh que deba ejecutar. Por ejemplo, si escribe un script personalizado y lo llama myscript.sh, debe ejecutar chmod u + x myscript.sh antes de intentar ejecutarlo.

Ejecutando un script desde la línea de comando

Para ejecutar un script de shell, debe especificar la ruta de acceso del script en el símbolo del sistema. Por ejemplo, si el script se llama install.sh y está ubicado en su directorio de trabajo, puede ejecutarlo con el siguiente comando.

 ./install.sh 

Los comandos anteriores le indican al shell "ejecutar el archivo install.sh que se encuentra en el directorio actual". Si install.sh se encuentra en el directorio myscripts en su directorio de inicio, puede ejecutarlo con el comando a continuación.

 ~ / myscripts / install.sh 

Nota: Especifique la ruta de acceso al archivo de script (en lugar de simplemente escribir inshall.sh, por ejemplo) como medida de seguridad: el shell desea asegurarse de que está ejecutando el install.sh correcto, por lo que debe especificar su exacta ubicación.

La única excepción es si su script se encuentra en un directorio listado en la variable de entorno PATH de su sistema. Si ese fuera el caso, podría ejecutar el archivo ejecutando el comando install.sh .