Actividades de aprendizaje de Bash para actividades de administración.
#!/bin/bash
if [ $? -eq 0 ]; then
echo OK
else
echo FAIL
fi
$$. Muestra el número de proceso del sistema que tiene el shell, es decir el PID.
$0. Muestra el nombre del script que se está ejecutando.
$n. El valor de n es el número de argumento que le pasamos al script, de forma que si hay varios parámetros lo definiríamos como $1, $2,
$1 es el primer parámetro. $2 es el segundo parámetro. Hasta el noveno parámetro, que es $ 9
Condicionales con números operador significado
-lt menor que (<) -gt mayor que (>) -le menor o igual que (<=) -ge mayor o igual que (>=) -eq igual (==) -ne no igual (!=)
if [[ $num1 -gt $num2 ]]; then echo $num1 es mayor que $num2 else echo $num2 es mayor que $num1 fi
Condicionales con cadenas de texto operador significado
= igual, las dos cadenas de texto son exactamente idénticas != no igual, las cadenas de texto no son exactamente idénticas < es menor que (en orden alfabético ASCII)
es mayor que (en orden alfabético ASCII)
-n la cadena no está vacía -z la cadena está vacía
#!/bin/bash string1='reo' string2='teo' if [[ $string1 > $string2 ]]; then echo Eso es verdad else echo Eso es mentira fi
#!/bin/bash string1='reo' if [[ $string1 = e ]]; then echo Eso es verdad else echo Eso es mentira fi
Condicionales con archivos
operador Devuelve true si
-e name name existe -f name name es un archivo normal (no es un directorio) -s name name NO tiene tamaño cero -d name name es un directorio -r name name tiene permiso de lectura para el user que corre el script -w name name tiene permiso de escritura para el user que corre el script -x name name tiene permiso de ejecución para el user que corre el script
#!/bin/bash for file in $(ls); do if [[ -d $file ]]; then echo directorio: $file else if [[ -x $file ]]; then echo archivo ejecutable: $file else echo archivo no ejecutable: $file fi fi done
Manipulación de cadenas de texto
Mediante
Borrar subcadena Hay diferentes formas de borrar subcadenas de una cadena:
Por ejemplo, en la cadena string=abcABC123ABCabc:
echo ${string#aC} : 123ABCabc echo ${string##aC} : abc
Reemplazar subcadena También existen diferentes formas de reemplazar subcadenas de una cadena:
Por ejemplo, en la cadena string=abcABC123ABCabc:
echo
IF
if [[ CONDICIÓN ]]; then COMANDO 1 si se cumple la condición fi
if [[ CONDICIÓN ]]; then COMANDO 1 si se cumple la condición else COMANDO 2 si no se cumple la condición fi
if [[ CONDICIÓN 1 ]]; then COMANDO 1 si se cumple la condición 1 elif [[ CONDICIÓN 2 ]]; then COMANDO 2 si se cumple la condición 2 else COMANDO 3 si no se cumple la condición 2 fi
FOR
for VARIABLE in LISTA_VALORES; do COMANDO 1 COMANDO 2 ... COMANDO N done
for VARIABLE in 1 2 3 4 5 6 7 8 9 10; for VARIABLE in {1..10};
for VARIABLE in file1 file2 file3; for VARIABLE in $(ls /bin | grep -E 'c.[aeiou]'); for VARIABLE in "file1 file2 file3";
WHILE
while condicion do comandos done
#!/bin/bash
NUM=0
while [ $NUM -le 10 ]; do echo "$NUM: $NUM" let NUM=$NUM+1 done
Case case expresion in caso_1 ) comandos;; caso_2 ) comandos;; ...... esac
#!/bin/bash
for NUM in 0 1 2 3 do case $NUM in 0) echo "$NUM es igual a cero";; 1) echo "$NUM es igual a uno";; 2) echo "$NUM es igual a dos";; 3) echo "$NUM es igual a tres";; esac done
#!/bin/bash testfunction(){ echo "My first function" } testfunction
testfunction(){ echo $1 echo $2 }