¡Esta es una revisión vieja del documento!
Para crear un Script en Linux hay que seguir los siguientes pasos:
vi miscript.sh
#!/usr/bin/env bash
o
#!/bin/bash
chmod u+x miscript.sh
./miscript.sh
$HOME
: Directorio inicial del usuario$PATH
: Lista de directorios donde buscar un ejecutable$PWD
: El directorio de trabajo actual$UID
: Identificador del usuario actual$$
: El PID del proceso actual$1
, $2
, $3
, …: Cada uno de los argumentos$#
: El Nº de argumentosEn Linux se permite hacer la redirección de la entrada y la salida a un fichero y desde un fichero.
find / -name "*.mkv" > mis-peliculas.txt
find / -name "*.avi" >> mis-peliculas.txt
sort < mis-peliculas.txt
Mas información:
ANYO_ACTUAL=$(date +%Y) echo $ANYO_ACTUAL
Para hacer operaciones matemáticas con bash usar $[ ]
a=3 b=1 c=$[ $a - $b ] echo $c
Mostrará por pantalla 2
También se puede usar la orden bc
que permite decimales.
a=3.7 b=1.2 c=$( echo "$a - $b" | bc -l) echo $c
Mostrará por pantalla 2.5
Otro ejemplo de bc
echo "1.3+2.6+7.8+8.9" | bc -l
Mostrará por pantalla 20.6
if [ "$SALUDO" == "HOLA" ]; then echo "Ha saludado con Hola" else echo "No ha saludado con Hola" fi
if [ "$SALUDO" == "HOLA" ]; then echo "Ha saludado con Hola" elif [ "$SALUDO" == "Hello" ]; then echo "Ha saludado con Hello" else echo "No ha saludado con Hola" fi
if [ "$SALUDO" == "HOLA" ] || [ "$SALUDO" == "Hello" ]; then echo "Ha saludado " else echo "No ha saludado" fi
if [ "$SALUDO" == "HOLA" ] && [ "$NOMBRE" == "Lorenzo" ]; then echo "Hola Lorenzo " fi
if [ "$ANYO_ACTUAL" -le "2020" ]; then echo "El año actual es menor o igual que 2020" fi
Operadores para textos | ||
---|---|---|
Operador en Bash | Significado | Ejemplo |
== | = | if [ "$a" == "$b" ]; then |
!= | ≠ | if [ "$a" != "$b" ]; then |
Operadores para números enteros | ||
---|---|---|
Operador en Bash | Significado | Ejemplo |
-eq | = (equal) | if [ "$a" -eq "$b" ]; then |
-ne | ≠ (not equal) | if [ "$a" -ne "$b" ]; then |
-gt | > (greater than) | if [ "$a" -gt "$b" ]; then |
-ge | ≥ (greater or equal) | if [ "$a" -ge "$b" ]; then |
-lt | < (less than) | if [ "$a" -lt "$b" ]; then |
-le | ≤ (less or equal) | if [ "$a" -le "$b" ]; then |
Operadores lógicos | ||
---|---|---|
Operador en Bash | Significado | Ejemplo |
|| | O lógico | if [ "$a" == "$b" ] || [ "$a" == "$c" ]; then |
&& | Y lógico | if [ "$a" != "$b" ] && [ "$a" != "$c" ]; then |
#Muestra los números del 0 al 9 for I in 0 1 2 3 4 5 6 7 8 9 do echo Es valor de I=$I done
#Borra todos los ficheros del directorio for FICHERO in $(ls) do rm $FICHERO done
Haz un Script que muestre por pantalla "Hola Mundo" , para ello usa la orden "echo".
Parámetros básicos:
Haz un Script llamado "sumar.sh" que sume dos números enteros que se pasan como argumentos.
Modifica el Script para que acepte números decimales
Haz un Script llamado "nota_media_sistemas.sh" que dados 3 notas enteras (Examen, Prácticas y Actitud) , obtenga la nota media del módulo de "Sistemas Informáticos". Sabiendo que el peso de cada nota es del 60%, 30% y 10% respectivamente
Modifica el Script de la siguiente forma:
Haz un script llamado "format.sh" que le pasemos como argumentos:
Y deberá hacer:
Haz un script llamado "permitir_ejecucion.sh" que acepte como argumento el nombre de un fichero. La orden añadirá el permiso de ejecución al propietario de ese fichero
Modifica el Script para que acepte un segundo argumento que sea alguno de los siguientes valores:
Con cualquier otro valor deberá mostrar un mensaje de error y no hacer nada.