#!/bin/sh
# Esta es una linea de comentario
echo "Hola Mundo!"
cat <<EOF
-------------------------------
Esta es una cadena de caracters
con varias lineas de texto
-------------------------------
EOF
<<EOF
Los HEREDOCS tambien se
pueden utilizar para incluir
comentarios en varias lineas
EOF
: '
Otra forma de incluir comentarios
es con el operador : que no hace
nada
'
Bash es uno de los intérpretes de comandos más populares, en parte debido a la gran cantidad de funciones que ha ido añadiendo durante los años con respecto a la shell estandar.
Comparado con el resto de lenguajes que estamos viendo, la shell tiene una potencia expresiva mucho menor, sin embargo, las posibilidades de que, en algún momento, tengas que escribir un programa para una shell (lo que se conoce como un Shell Script) son muy altas.
Los shell scripts suelen utilizar la extension
.sh
(derivado de SHell obviamente).
SABIAS QUE…
En ocasiones verás shell scripts con otras extensiones como por ejemplo
bash
. En esos casos, la extensión suele indicar el tipo de shell para la que se ha escrito el programa puesto que puede utilizar alguna función especial de esa shell y no funcionar en otras. La extensiónsh
indica que se utiliza la shell estándar que se encuentra en/bin/sh
y se llamash
.
Como podemos ver, el caracter #
se utilizado para añadir
comentarios y la instrucción echo
para imprimir cadenas de
caracteres en pantalla. Nótese que aunque se han utilizado las comillas
para delimitar la cadena de caracteres, en ese caso en concreto se
podría haber omitido. echo
por defecto añade un retorno de
carro a la cadena.
SOY NOVATO
La diferencia entre
echo "Hola Mundo"
yecho Hola Mundo
es que en el primer caso estamos pasando un único parámetro al programaecho
mientras que en el segundo caso estamos pasando dos. El programaecho
imprime en pantalla todos parámetros que recibe separados por un espacio. Prueba a añadir más de un espacio entreHola
yMundo
en los dos casos anteriores y verás que pasa.
También podemos utilizar here-docs
y definir comentarios
multilíneas utilizando here-docs
que no pasamos como
parámetro a nada (de hecho esto también lo podemos hacer en Ruby) o
utilizando el operador :
.
Como con todos los lenguajes interpretados, para ejecutar nuestro
programa debemos darle permisos y utilizar el interprete adecuado en
caso de que no hayamos añadido el she-bang
.
$ bash hello.sh
$ chmod +x hello.sh
$ ./hello.sh
Bash fué desarrollado por Brian Fox para el projecto GNU para
sustituir la Bourne Shell que era propietaria. Su primera versión data
de 1989 y desde entonces se ha convertido en la shell estándar para
muchos sistemas. En los últimos años otras shells han
(dash
, zsh
,…) empezado a ser utilizada por,
sobre todo, algunas distros de linux, pero Bash sigue siendo la más
extendida.
SABÍAS QUE…
Bash es el acronimo de Bourne-again SHell que es un juego de palabras con el nombre de la shell que intenta sustituir (Bourne Shell) y la idea de volver a nacer (Born again).
Resumen
- Lenguaje interpretado
- Extension:
sh/bash
- Terminador de líneas : Retorno de carro
- Agrupa instrucciones con : Depdende del comando
- Comentarios multilinea : Posible utilizando
HERE-DOCS
- Comentarios misma línea:
#
- Delimitador de cadenas:
"cadena¨
o'cadena'
- Puedes imprimir textos con
echo
(Puede añadir (por defecto) o no retorno de carro) - Soporte cadenas múltilínea: Depende de la operación
- Soporta
HERE-DOCS
- Punto de Entrada: Inicio del fichero
■