ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Scripts bash


Enviado por   •  6 de Junio de 2023  •  Apuntes  •  4.599 Palabras (19 Páginas)  •  179 Visitas

Página 1 de 19

SCRIPTS

para finalizar= exit

# para hacer comentarios, solo afecta a la linea que lo lleva

shebang

Es una linea no obligatoria, si existe es la primera y tiene la ruta absoluta del interprete de comandos que debe utilizarse para ejecutar ese script tras una almohadilla y admiración.

Esta linea nos va a dirigir la ejecución del script al interprete correcto si lo tenemos instalado de manera automática

#!bin/bash

el shebang es el único que no es comentario y lleva almohadilla delante

echo -e “texto /n (salto de linea)

texto”

Si usásemos sh como interprete sería “texto /n texto”, es decir, habría que usar comillas.

VARIABLES

No hay que declararlas ni tienen tipo.

#!/bin/bash

variable1=15

variable2=hola

echo la variable1 vale $variable1

echo la variable2 vale $variable2

resultado:

la variable1 vale 15

la variable2 vale hola

Si la variable tiene espacios, se encierra su valor entre comillas

variable3=”odio los scritpts”

variable4=’con todas mis fuerzas’

echo $variable3

echo $variable4

resultado:

odio los scripts

con todas mis fuerzas

variable de solo lectura:

declare -r variable=valor

El valor no va a ser modificado durante la ejecución del script

#!/bin/bash

declare -r temperatura=28

echo Temperatura $temperatura

temperatura=30

echo $temperatura

Resultado:

oscar@oscar-VirtualBox:~/scripts$ ./temperatura.sh

Temperatura 28

./temperatura.sh: línea 7: temperatura: variable de sólo lectura

28

PARA LLAMAR A UN SCRIPT DESDE OTRO

desde el scritpt inicial

ruta/nombrescript

si estuviesen en la misma carpeta

./nombredelscript

TIPOS

Aunque no es obligatorio, podemos declarar un tipo para la variable. De esa manera, siempre va a tener que recibir un valor compatible con el tipo asignado.

Declare -i variable

esta variable va a ser de tipo integer y su valor siempre debe estar dentro del rango de un entero, en caso de que asignemos un alfanumerico su valor será cero, en caso de que sea un valor tipo float dará error

GNU nano 4.8 temperatura.sh

#!/bin/bash

declare -i temperatura

temperatura=28

echo Temperatura $temperatura

temperatura=3.5

echo $temperatura

temperatura=aserf

echo $temperatura

Resultado:

Temperatura 28

./temperatura.sh: línea 9: 3.5: error sintáctico: operador aritmético no válido (el elemento de error es ".5")

28

0

Las variables tienen un valor sólo para su script, si llamamos a otro script desde el primero no va a mostrar el valor de las variables del primer script en el segundo.

Para que exporten el valor hay que poner delante de la variable export

VARIABLES DE SISTEMA

las podemos ver introduciendo el comando set en el cmd

Para ver el resultado de una variable del sistema usamos $?

EXPRESIONES

Ejemplo

oscar@oscar-VirtualBox:~/scripts$ ls

llamado.sh primero.sh temperatura.sh variables.sh

oscar@oscar-VirtualBox:~/scripts$ $?

0: no se encontró la orden

TEST el comando test sirve para evaluar expresiones. Si se cumple la condición da como resultado 0.

En la ayuda hay múltiples opciones de uso

oscar@oscar-VirtualBox:~/scripts$ test -d temperatura.sh

oscar@oscar-VirtualBox:~/scripts$ $?

1: no se encontró la orden

Como temperatura.sh no es un directorio no me va a dar cero, porque no se cumple la condición

num1=16

num2=17

if test $num1 -eq $num2

then

echo números iguales

else

echo números diferentes

fi

resultado:

números diferentes

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

#!/bin/bash

echo dame el primer valor

read num1

echo dame el segundo valor

read num2

if test $num1 -eq $num2

then

echo Los números son iguales

else

echo los números son diferentes

fi

si ponemos echo -n nos pide el dato en la misma linea, sin él hace salto de línea

Esta linea

if test $num1 -eq $num2

Podríamos sustituirla por esta

if [ $num1 -eq $num2 ]

Ojo, muy importante respetar los espacios entre los corchetes y el código, de otra forma no funcionaría. Es recomendable usar los corchetes en vez de test

man test y nos saldrá la ayuda con todas las opciones (comparacion cadenas, recorridos, etc)

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

comparar cadenas

#!/bin/bash

echo dame un nombre:

read num1

if test $num1 = PEPE

then

echo Es PEPE

else

echo No es PEPE

fi

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

cadena vacía

#!/bin/bash

echo dame un nombre:

read num1

if test -z $num1

then

echo cadena vacia

else

echo cadena no vacia

fi

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

#!/bin/bash

echo dame un nombre de una ciudad:

read num1

if test “$num1” = "CIUDAD REAL"

then

echo Acertaste

else

echo Fallaste

fi

Importante tener en cuenta las comillas cuando trabajamos con alfanuméricos (el espacio es alfanumérico) para que no rompa y el espacio después del =

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

...

Descargar como (para miembros actualizados) txt (23 Kb) pdf (96 Kb) docx (31 Kb)
Leer 18 páginas más »
Disponible sólo en Clubensayos.com