GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo ejecutar un comando en un script de Shell?

Shell es un intérprete de línea de comandos que permite al usuario interactuar con el sistema. Es responsable de tomar entradas del usuario y mostrar la salida.

Los scripts de shell son una serie de comandos escritos en orden de ejecución. Estos scripts pueden contener funciones, bucles, comandos, variables. Los scripts facilitan a los usuarios guardar ciertas secuencias de códigos que pueden usarse una y otra vez. Los scripts de shell también pueden tener comentarios para aumentar la legibilidad.

Se debe guardar un script de shell con la extensión .sh .

Para que el sistema Linux sepa que el archivo es un script de shell, el archivo debe comenzar con shebang construir.

#!/bin/bash 
OR
#!/bin/sh

Después de esto, el script puede contener comandos, funciones, bucles, comprobaciones condicionales, etc.

Un buen guión siempre contiene comentarios que lo hacen legible.

Crear y ejecutar un script de shell básico

Se puede crear un script de shell usando vi, el comando cat o el editor de texto normal en la GUI.

Vamos a crear un script de shell básico usando vi

$ vi basic_script.sh

Esto lo llevará al editor vi. Agregue las siguientes líneas:

#!/bin/bash
whoami
date

Este sencillo script debería mostrar el usuario actual seguido de la fecha.

Para guardar y salir del editor vi:

  • Presione ESC
  • Tipo:
  • Escriba 'wq'
  • Presiona Enter

De forma predeterminada, el creador del script no obtiene permiso de ejecución para el archivo.

Para cambiar eso:

$ chmod +x basic_script.sh

Esto le dará a usted (usuario actual) el permiso para ejecutar el archivo.

Para ejecutar el script:

$ bash basic_script.sh

La primera línea de salida corresponde al comando 'whoami' y la segunda línea al comando 'fecha'.

Otra forma de ejecutar el script es:

$ ./basic_script.sh 

Ejecutar el archivo de esta manera puede requerir que el usuario dé permiso primero. Ejecutarlo con 'bash' no requiere el permiso.

El mismo script se ejecuta con ‘bash’ antes, pero tenía problemas de permisos cuando intentaba ejecutarlo directamente. La razón por la que esto sucede es que el comando bash [nombre de archivo] solo necesita permiso de lectura del archivo.

Mientras que el comando ./[nombre de archivo] ejecuta el archivo como ejecutable y, por lo tanto, requiere permiso para ejecutarse. Esta pregunta ha sido respondida en detalle en StackExchange.

En general, es mejor proporcionar permiso ejecutable.

Uso de variables en scripts de shell

Los scripts pueden incluir variables definidas por el usuario; de hecho, a medida que los scripts aumentan de tamaño, es esencial tener variables claramente definidas. Las variables que son de naturaleza autodescriptiva son otra cualidad de un buen guión.

Agregue las siguientes líneas al script:

#!/bin/bash
#This is a comment

#defining a variable
GREETINGS="Hello! How are you"
echo $GREETINGS

SALUDOS es la variable definida y luego accedida usando '$'.

No debe haber espacios en la línea donde se asigna un valor a las variables.

Ejecutemos el script:

Leyendo entrada desde la línea de comando

Los scripts de shell se pueden hacer interactivos con la capacidad de aceptar entradas desde la línea de comandos. El comando de lectura se puede usar para almacenar la entrada de la línea de comando en una variable.

#!/bin/bash
#This is a comment

#defining a variable
echo "What is your name?"
#reading input 
read NAME
#defining a variable
GREETINGS="Hello! How are you"
echo $NAME $GREETINGS
                 

Una variable NOMBRE se ha utilizado para aceptar entradas desde la línea de comandos.

Al ejecutar el script:

Definiendo funciones

Los usuarios pueden definir sus propias funciones en un script. Estas funciones pueden tomar múltiples argumentos.

En el script agregue:

#!/bin/bash
#This is a comment

#defining a variable
echo "What is the name of the directory you want to create?"
#reading input 
read NAME
#defining a variable

echo "Creating $NAME ..."
mkcd ()
{
  mkdir "$NAME" 
  cd "$NAME"
}

mkcd
echo "You are now in $NAME"

Este script le pedirá al usuario un nombre de directorio. Luego creará el directorio y cd en él.

Conclusión

Vimos cómo se pueden usar los scripts para ejecutar comandos en orden serial. Los scripts ayudan a los usuarios a reducir la redundancia y ahorrar tiempo. Los scripts también se pueden compartir entre diferentes usuarios.

Los scripts que vimos en este tutorial eran bastante básicos, los scripts también se pueden diseñar para realizar tareas complejas. Para obtener más información sobre las secuencias de comandos, consulte esto.


Linux
  1. ¿Cómo manejar los interruptores en un script de Shell?

  2. ¿Cómo ejecutar un script en Shell cuando se presiona una tecla de acceso directo?

  3. ¿Cómo ejecutar comandos en Gnuplot usando Shell Script?

  4. Cómo ejecutar un archivo sin extensión .sh en shell

  5. ¿Cómo ejecutar un script bash?

Cómo usar variables en secuencias de comandos de Shell

Cómo ejecutar un comando de Shell con Python

Cómo crear scripts de shell

Cómo ejecutar comandos de Shell a través del servidor HTTP

Cómo escribir un script de Shell en Ubuntu

Cómo almacenar un comando de Linux como una variable en el script de Shell