Cómo usar el Compilador de Shell

Para usar el compilador de Shell, siga estos pasos:

  1. En el editor de código, escriba su script de shell (comience con un shebang como #!/usr/bin/env bash).
  2. Haga clic en el botón EJECUTAR para ejecutar su script.
  3. La salida se mostrará en la consola debajo del editor.

Consejo: En una máquina local, haga que un archivo sea ejecutable con chmod +x script.sh y ejecútelo a través de ./script.sh.

Tomando Entradas

En shell, puede leer desde la entrada estándar o aceptar argumentos de la línea de comandos.

Entrada de cadena (leer todo stdin)

#!/usr/bin/env bash
# Leer todo stdin en una variable
input="$(cat)"
echo "Usted ingresó: $input"

Entrada de número (una sola línea)

#!/usr/bin/env bash
read -r input
# Verificación numérica básica y uso
if [[ "$input" =~ ^-?[0-9]+$ ]]; then
  num="$input"
  echo "Usted ingresó: $num"
else
  echo "No es un entero válido" >&2
fi

También es útil: argumentos de la línea de comandos. El primer argumento es $1, todos son $@:

#!/usr/bin/env bash
echo "Primer argumento: $1"
echo "Todos los argumentos: $@"

Importando Bibliotecas

Shell no tiene "bibliotecas" como Rust, pero puede:

  • Suministrar otros archivos shell con funciones/vars reutilizables.
  • Usar aritmética incorporada o herramientas externas (por ejemplo, bc) para matemáticas.
  • Aprovechar las matrices y las utilidades comunes de Unix.

Suministrando otro archivo

#!/usr/bin/env bash
# utils.sh contiene funciones auxiliares
# En el mismo directorio:
. "./utils.sh"   # o: source "./utils.sh"

greet "Ada"      # llama a una función definida en utils.sh

Usando Matemáticas

Aritmética de enteros (incorporada):

#!/usr/bin/env bash
a=9; b=4
sum=$((a + b))
echo "Suma: $sum"

Punto flotante (a través de bc)

#!/usr/bin/env bash
result="$(echo 'scale=4; sqrt(25)' | bc -l)"
echo "La raíz cuadrada de 25 es $result"

Usando Matrices

#!/usr/bin/env bash
arr=(1 2 3 4 5)
echo "Matriz: ${arr[@]}"
echo "Longitud: ${#arr[@]}"
echo "Primero: ${arr[0]}"

Sintaxis 101

Bash es un lenguaje de comandos centrado en la automatización y el código de pegamento.

Variables

  • No hay espacios alrededor de =.
  • Use comillas para preservar los espacios.
  • Prefiera readonly para las constantes.
#!/usr/bin/env bash
name="John Doe"      # cadena
age=25               # similar a entero (sigue siendo una cadena)
readonly app="demo"  # constante

echo "Nombre: $name, Edad: $age, App: $app"

Estructuras de Control

#!/usr/bin/env bash
age=25
day="Lunes"

# If-Else
if (( age > 18 )); then
  echo "Adulto"
else
  echo "Menor"
fi

# Bucle For (secuencia)
for i in {0..4}; do
  echo "$i"
done

# Bucle While
n=3
while (( n > 0 )); do
  echo "Cuenta regresiva: $n"
  ((n--))
done

# Case (switch)
case "$day" in
  Lunes) echo "Inicio de la semana laboral" ;;
  Viernes) echo "Fin de la semana laboral" ;;
  *) echo "Entre semana" ;;
esac

Funciones

#!/usr/bin/env bash
greet() {
  local name="$1"
  echo "Hola, $name"
}

greet "John Doe"  # Llama a la función con "John Doe"

Los scripts más seguros a menudo comienzan con:

set -euo pipefail
IFS=$'\n\t'

(-e: salir en caso de error, -u: error de vars indefinidas, -o pipefail: fallar las canalizaciones correctamente)

Prueba en línea de Shell (Bash)

Una prueba en línea de scripting de Shell (Bash) es una forma práctica de evaluar las habilidades de un candidato con los comandos de Unix, las construcciones de scripting, el procesamiento de texto y la depuración. Estas pruebas normalmente mezclan preguntas teóricas con tareas prácticas (por ejemplo, analizar registros con grep/awk/sed, escribir scripts pequeños, manejar códigos de salida y usar canalizaciones/redireccionamiento). Se utilizan comúnmente en entrevistas técnicas, campos de entrenamiento y plataformas en línea para validar el dominio del mundo real en la automatización y los flujos de trabajo de la CLI.