Aprendiendo Shell scripts en Linux

Iniciado por Krll, 9 Mayo 2015, 20:21 PM

0 Miembros y 1 Visitante están viendo este tema.

Krll

Voy a crear este post con el fin de hacer una pequeña guia para todo aquel que se quiera iniciar en los scripts en linux pueda avanzar de forma autodidacta y con ayuda de los compañeros del foro, a los cuales tambien les propongo ayuda y corrección si en algun momento me equivoco.
Intentare hacerlo lo mas correcto y mejor explicado que pueda metiendo información dia a dia para que todo aquel que quiera pueda seguirlo poco a poco.

Espero que guste en la comunidad
Tu libertad termina donde empieza la de otro, no traspases la linea.

Krll

Aprender Scripts en Linux:

Un script (-) es un archivo de texto plano que contiene ordenes o comandos para realizar una o varias tareas.
En Linux los Shell scripts son ficheros de texto que contienen comandos que se van interpretando por la Shell.
Para que un Shell script pueda ejecutarse hay que añadirle al texto permisos de ejecución.
chmod 777 o chmod rwx dependiendo de la manera que más cómoda se nos haga y los permisos que queramos darle a nuestro script.
Cundo hagamos Shell scripts hay que avisar al sistema con que Shell queremos ejecutar el script. Para indicarlo como primera línea se debe poner  #!/bin/bash. También es frecuente añadirle la extensión .sh .
"Los scripts en Linux por lo general yo utilizo 2 maneras para compilarlos, por nano o gedit."

Variables:
Existen variables especificas para ser utilizadas dentro de los Shell script.
$0  -Nombre del script
$1,$2,$3...  -Parámetros o argumentos posicionales que se introducen desde la línea de comandos.
$#  -Numero de parámetros o argumentos posicionales.
$*  -Variable que recoge el valor de todos los argumentos.
$?  -Valor devuelto por el último comando ejecutado.
$$  -PID del Shell script.
Comandos:
read  -Lee un valor y lo asigna a una variable.
Sintaxis: read [variable]


Manejo de expresiones
Expresiones aritméticas
Son evaluadas por el Shell por el comando: expr. Cada termino especificado en su sintaxis lleva un espacio. Este comando solo acepta operaciones básicas y con números enteros.

+: suma  expr 2+2
-: resta expr 2-2
/: división expr 7/3
\*: multiplicación expr 4\*3
%: resto de división o modulo expr 8%3

result= 'expr 2+2'

Para comparar valores numéricos se utilizan los siguientes operadores:

-eq (igual)
-ne (distinto)
-gt (mayor que)
-lt (menor que)
-ge (mayor o igual)
-le (menor o igual)

Operadores lógicos:

AND: && o –a
OR: -o
NOT: !expresión

Con esto explicado hasta ahora vamos a crear 2 pequeños scripts para practicar.

1-Vamos a crear un script al cual le vamos a poner el nombre de "borra" que borre la pantalla y nos muestre la fecha actual.

nano borra.sh
#!/bin/bash
#borra pantalla
clear
#muestra fecha
date

Para ejecutar este script escribimos el comando ./ seguido del nombre el cual pusimos al script y seria:
./borra.sh



2-Crearemos un script que nos pida que introduzcamos el día de la semana y nos lo muestre.

nano dia_semana.sh
#!/bin/bash
echo "introduce el dia de la semana"
read dia
echo $dia
chmod +x dia_semana.sh  (aquí damos el permiso de ejecución)

./dia_semana.sh  (con esto ejecutamos nuestro script)

Tu libertad termina donde empieza la de otro, no traspases la linea.

alv19mar19

Como se ejecutaría este un script que vaya leyendo texto hasta llegar a un punto.
Ir guardando el texto en un fichero(fichero.txt) indicado como parámetro al ejecutar el script????
Gracias