Shell Scripting o Shell Programming es como cualquier otro lenguaje de programación. Un shell es un programa especial que proporciona una interfaz entre el usuario y el sistema operativo.
En Linux/Unix, el shell predeterminado que se usa es bash y en Windows, es cmd (símbolo del sistema). Usamos la terminal para ejecutar un comando de shell. Los scripts de shell se guardan con . sh , y podemos ejecutar el script con la ayuda del siguiente comando.
bash path/to/the/filename.sh
Ejemplo:
Un simple programa shell para imprimir Hello Geeks!!.
#! /bin/bash # echo is used to print echo "Hello Geeks!!"
Aquí, #! /bin/bash se usa para informar a Linux/Unix que es un Bash Script y usar el intérprete de bash que reside en /bin para ejecutarlo.
Producción:
Shell Script para dividir una string:
Analicemos cómo podemos dividir una string, tome la siguiente string como ejemplo:
string = «Lelouch, Akame, Kakashi, Ira»
Y nos gustaría dividir la string por el delimitador «,» para que tengamos:
- nombre = «Lelouch»
- nombre = «Akame»
- nombre = «Kakashi»
- nombre = «Ira»
Enfoque 1: uso de IFS (separador de campo de entrada).
IFS significa Separador de campo interno o la variable de separador de campo de entrada se usa para separar una string en tokens.
Cuerda original:
string = «Lelouch, Akame, Kakashi, Ira»
Después de dividir:
nombre = Lelouch
nombre = akame
nombre = Kakashi
nombre = Ira
String contiene el valor de la string de entrada y la variable IFS el delimitador en el que vamos a separar la string. read -ra arr <<< “$string” convierte las strings separadas en una array, después de eso estamos usando for loop para recorrer la array e imprimir el valor. “@” en el subíndice arr muestra que estamos revisando todo el arreglo.
Guion :
#! /bin/bash # Given string string="Lelouch,Akame,Kakashi,Wrath" # Setting IFS (input field separator) value as "," IFS=',' # Reading the split string into array read -ra arr <<< "$string" # Print each value of the array by using the loop for val in "${arr[@]}"; do printf "name = $val\n" done
Para ejecutar el script, use el siguiente comando:
bash path/to/the/filename.sh
Producción:
Enfoque 2: Sin usar el IFS
Supongamos que la string de entrada contiene una palabra en particular «anime» y queremos dividir la string al ver «anime»
string = «anime Bleach anime Naruto anime Pokemon anime Monstruo anime Dororo»
Producción :
El nombre del anime es = Bleach
El nombre del anime es = Naruto
El nombre del anime es = Pokémon
El nombre del anime es = Monstruo
El nombre del anime es = Dororo
Podemos hacer esto usando la Expansión de Parámetros .
Guion :
#! /bin/bash # Given string string="anime Bleach anime Naruto anime Pokemon anime Monster anime Dororo" # Syntax to replace all occurrences of "anime" with " " arr=(${string//"anime"/ }) # Print each value of the array by using the loop for val in "${arr[@]}"; do printf "Anime name is = $val\n" done
Producción:
Publicación traducida automáticamente
Artículo escrito por amnindersingh1414 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA