Hay muchas guías en Internet que muestran cómo crear secuencias de comandos de Shell con BASH y esta guía tiene como objetivo dar un giro ligeramente diferente porque está escrito por alguien que tiene muy poca experiencia en la creación de secuencias de comandos de shell.
Ahora puedes pensar que es una idea tonta, pero me parece que algunas guías te hablan como si ya fueras un experto y otras guías tardan demasiado en ir al grano.
Si bien mi experiencia con los scripts de shell de LINUX / UNIX es limitada, soy un desarrollador de software de comercio y soy un experto en lenguajes de scripting como PERL, PHP y VBScript.
El objetivo de esta guía es que aprenderá a medida que yo aprenda y cualquier información que recoja se la transmitiré.
Empezando
Obviamente, existe una gran cantidad de teoría que podría transmitirle de inmediato, como por ejemplo, describir los diferentes tipos de shell y las ventajas de usar BASH sobre KSH y CSH.
La mayoría de las personas cuando aprenden algo nuevo quieren saltar y comenzar con algunas lecciones prácticas primero y con eso en mente, no voy a aburrirte con trivialidades que no son importantes en este momento.
Todo lo que necesita para seguir esta guía es un editor de texto y un terminal que ejecute BASH (el shell predeterminado en la mayoría de las distribuciones de Linux).
Editores de texto
Otras guías que he leído han sugerido que necesita un editor de texto que incluya codificación de colores de los comandos y que los editores recomendados sean VIM o EMACS.
La codificación de colores es agradable, ya que resalta los comandos a medida que los escribe, pero para el principiante absoluto, podría pasar las primeras semanas aprendiendo VIM y EMACS sin escribir una sola línea de código.
De los dos, prefiero EMACS, pero para ser honesto, prefiero usar un editor simple como nano, gedit o leafpad.
Si está escribiendo scripts en su propia computadora y sabe que siempre tendrá acceso a un entorno gráfico, entonces puede elegir el editor que más le convenga y puede ser tanto gráfico como GEdit o un editor que se ejecuta directamente en el terminal. tal como nano o vim.
Para los fines de esta guía, utilizaré nano, ya que se instala de forma nativa en la mayoría de las distribuciones de Linux y, por lo tanto, es probable que tenga acceso a él.
Abrir una ventana de terminal
Si está utilizando una distribución de Linux con escritorio gráfico como Linux Mint o Ubuntu, puede abrir una ventana de terminal presionando CTRL + ALT + T.
Donde poner tus scripts
Para los fines de este tutorial, puede poner sus scripts en una carpeta debajo de su carpeta de inicio.
Dentro de una ventana de terminal, asegúrese de estar en su carpeta de inicio escribiendo el siguiente comando:
cd ~
El comando cd significa cambio de directorio y la tilde (~) es un acceso directo para su carpeta de inicio.
Puedes verificar que estás en el lugar correcto escribiendo el siguiente comando:
pwd
El comando pwd le indicará su directorio de trabajo actual (donde se encuentra en el árbol de directorios). En mi caso volvió / home / gary.
Obviamente, no querrá colocar sus scripts directamente en la carpeta de inicio, así que cree una carpeta llamada scripts escribiendo el siguiente comando.
scripts mkdir
Cambie a la nueva carpeta de scripts escribiendo el siguiente comando:
Tu primer guion
Es habitual cuando se aprende a programar para hacer que el primer programa simplemente emita las palabras "Hola mundo".
Desde dentro de su carpeta de scripts ingrese el siguiente comando:
nano helloworld.sh
Ahora ingrese el siguiente código en la ventana nano.
#! / bin / bash echo "hola mundo"
Presione CTRL + O para guardar el archivo y CTRL + X para salir de nano.
El script en sí se compone de la siguiente manera:
El #! / Bin / bash debe incluirse en la parte superior de todos los scripts que escribe, ya que permite que los intérpretes y el sistema operativo sepan cómo manejar el archivo. Básicamente, solo recuerda ponerlo y olvidarte de por qué lo haces.
La segunda línea tiene un solo comando llamado eco que genera el texto que sigue inmediatamente.
Tenga en cuenta que si desea mostrar más de una palabra, debe usar comillas dobles (") alrededor de las palabras.
Ahora puede ejecutar el script escribiendo el siguiente comando:
sh helloworld.sh
Las palabras "hola mundo" deberían aparecer.
Otra forma de ejecutar scripts es la siguiente:
./helloworld.sh
Lo más probable es que si ejecuta ese comando en su terminal de inmediato obtendrá un error de permisos.
Para otorgar permisos para ejecutar el script de esta manera, escriba lo siguiente:
sudo chmod + x helloworld.sh
Entonces, ¿qué sucedió realmente allí? ¿Por qué pudo ejecutar sh helloworld.sh sin cambiar los permisos pero ejecutando ./helloworld.sh causó un problema?
El primer método carga el intérprete de bash que toma el helloworld.sh como entrada y determina qué hacer con él. El intérprete de bash ya tiene permisos para ejecutar y solo necesita ejecutar los comandos en el script.
El segundo método permite al sistema operativo determinar qué hacer con el script y, por lo tanto, requiere un bit ejecutable para poder ejecutarse.
La secuencia de comandos anterior estaba bien, pero ¿qué sucede si desea mostrar las comillas?
Hay varias maneras de lograr esto. Por ejemplo, puede poner una barra invertida antes de las comillas de la siguiente manera:
echo "hola mundo "
Esto producirá la salida "hola mundo".
Espera un minuto, sin embargo, ¿qué pasa si quieres mostrar "hola mundo"?
Bueno, puedes escapar de los personajes de escape también
echo "" hola mundo ""
Esto producirá la salida "hola mundo ".
Ahora sé lo que estás pensando. Pero realmente quiero mostrar "" hola mundo ""
Usar eco con todos estos personajes de escape puede ser bastante tonto. Hay un comando alternativo que puedes usar llamado printf.
Por ejemplo:
printf '% s n' ' "" hello world ""'
Tenga en cuenta que el texto que queremos mostrar está entre comillas simples. El comando printf genera el texto de su script. El% s significa que mostrará una cadena, el n genera una nueva línea.
Resumen
No hemos cubierto mucho terreno en la primera parte, pero esperamos que tenga su primer guión en funcionamiento.
En la siguiente parte, veremos cómo mejorar el script de hello world para mostrar texto en diferentes colores, aceptar y manejar parámetros de entrada, variables y comentar su código.