1

Crea tu menú BASH personalizado 🤩

Te ha pasado que a veces olvidas los comandos de Linux más simples? 😵‍💫 A quien no, son tantos que a veces pueden ser abrumadores, el clásico ‘ls’ por ejemplo tiene tantas variantes que puede ser dificil recordarlos todos. Con que listabamos los ocultos ? con ls -l? con ls -lt ? ls -a? 😵😵
En este tutorial haremos una** lista de los comandos más últiles** que queramos tener a la mano con nuestra propia sintaxis, osea nuestra propia manera de llamarlos, los comandos pueden ser de los más básicos (pwd, ls, rm) a uso de **pipe operators **(ls -1 | wc -l).
¡VAMOS A ELLO!

  1. Definamos que comandos son lo más útiles para nosotros, por ejemplo yo pondré 2 comandos que siempre suelo usar.
  • Yo suelo guardar mis scripts de JavaScript en una carpeta dedicada, pero lo malo es que cada que quiero acceder a ella tengo que ejectar muchos ‘cd /carpeta1/carpeta2/carpeta…’ 😴. Asi que mi primer comando será para direccionarme directamente a esa carpeta.
    Lo primero es obtener la ruta completa de mi carpeta de interes, como vemos en la imagen para mi es la ruta ‘/home/pi/MERAKIMAGIC/scripts’. Pueden seguir los pasos para obtener su carpeta de interés.
    pwd.png
  • Luego crearé un atajo para crear archivos de js, que me pidan el nombre y que se cree con al extensión correcta.
    Comencemos creando entonces nuestro archivo bash desde la carpeta home, yo le puse al mío menu.bash y lo edito con vim:
cd ./
vim menu.sh

Dentro de vim comenzamos creando la estructura de nuestro menú, usaremos un while para poder iterar a través de los varias parámetros que le podriamos pasar al script, la línea ‘-n $1’ evalua que el primer parámetro que le pasemos al script sea diferente de vacío, en caso se cumpla pasamos a ejecutar la lógica dentro de ‘do’. El comando shift se utiliza para desplazar los argumentos posicionales hacia la izquierda, osea ir evaluando cada uno de los parámetros que le podamos pasar al script en bash.

#!/bin/bash#MENU PERSONALIZADO :Dwhile [ -n "$1" ]
do#menu con caseshiftdone

Y esta es la forma en la que llamamos a nuestro script, en este caso pasandole el parámetro ‘–ruta’, que se supone nos llevara al directorio de scripts de nuestro interés.

bash menu.sh --ruta

Ahora comencemos a crear la lógica para cada una de las opciones que puede tomar nuestra variable, lo haremos con ‘case’ ya que para cada valor ejecutaremos acciones diferentes:

#!/bin/bash#MENU PERSONALIZADO :D#Este es un bucle whilequese ejecutara mientras haya argumentos posicionales pasados al script. La condición [ -n “$1” ] verifica si el primer argumento #($1) no esta vacio. El bucle permite procesar cada argumento en el ciclo.while [ -n"$1" ]
do#"Esta es la construccion case que permite ejecutar diferentes bloques de codigo segun el valor del primer argumento ($1)"case$1in#Esta es la primera opcion del case. Si el valor de $1 es “ruta”, se ejecutara el bloque de codigo a continuacion.
         --ruta)
		#Este comando cambia el directorio actual a ‘/home/pi/MERAKIMAGIC/scripts’, lo quete lleva a la ruta de tus scripts.cd"/home/pi/MERAKIMAGIC/scripts/"echo"Estamos en la ruta de tus scripts";;
	#Esta es la segunda opcion del case. Si el valor de$1 es “crear”, se ejecutara el bloque de codigo a continuacion.
         --crear)
		#Este comando solicita al usuario que ingrese el nombre desu script y almacena la entrada enla variable $nombre.read -p "Ingresa el nombre de tu script: " nombre
               touch $nombre.js;;
	# Esta es la opcion por defecto del case. Si el valor de$1no coincide con ninguna de las opciones anteriores, se ejecutara el bloque de codigo.
          *)
               echo"Puedes llamar a los siguientes parametros: "echo"menu.sh --ruta""     Te lleva a la ruta de scripts"echo"menu.sh --crear""     Te pide un nombre y crea un script de JS";;
     esacshiftdone

Finalmente logramos ejecutarlo:

. menu.sh --ruta
. menu.sh --ruta --crear


Escribe tu comentario
+ 2