Contenido del curso
Programación Shell Básica
Script Interactivos
Condicionales
Iteración
Archivos
Empaquetamiento
Funciones
Cierre del curso
Reto 1
Contenido del curso
Reto 1
Reto 1:
Desarrollar un programa llamado utilityHost.sh, dentro de él vamos a declarar dos variables una llamada option, otra llamada result, vamos a inicializarles e imprimir sus valores.
Irving Juárez
EstudianteLuis Alberto Juarez Corona
EstudianteCristian Archila Atehortua
EstudianteAngel Rosendo Mendoza Rodríguez
EstudianteIzaird Mothelet
EstudianteSantiago Muneton
EstudianteRaul Santos
EstudianteGabriela Carolina Navarro Quintero
EstudianteGregorio Andres Martinez Ruiz
EstudianteBryan Imbaquingo
EstudianteIrving Juárez
EstudianteBryan Imbaquingo
EstudianteJuan Antonio Cuahonte Isla
EstudianteMiguel Angel Reyes Moreno
EstudianteCristobal Nyram
EstudianteJulián David Márquez fuentes
EstudianteRubén Téllez Gerardo
EstudianteNicolas Bustos
EstudianteArsenio Antonio Pérez Pérez
EstudianteAlan Mena
EstudianteDimas Antonio Mendoza Lozano
EstudianteMarvin Javier Santos Fernández
EstudianteMiguel Ramírez
EstudianteJose de Jesus Valdez Sepulveda
EstudianteIsaac Bryan Ascanoa Roncall
EstudianteJonathan Santoyo
EstudianteJose Luis Flores
Estudiantecristian rodriguez
EstudianteSi quieren hacer sus programas interactivos, usen read, es muy cool y hace de los programas en bash cosas mas divertidas. Aquí hay un ejemplo muy básico:
#!/bin/sh echo "What is your name?" read name echo "What is your age?" read age echo "You are $name and you are $age years old"
para ejecutarlo es : bash -x <nombre_archivo>
< # !/bin/bash # Reto 1 Curso de programacion en bash shell # autor:CAA echo "El siguiente codigo realiza un ping a www.platzi.com 10 veces y guarda la salida en un archivo de txt" option=$(ping -c 10 platzi.com > /home/caa/shellCourse/reto.txt) result=$(head -n 20 reto.txt && pwd; ls -lh reto.txt) echo "\nEl Resultado fue: $result" >
y la salida es la siguiente :
</utilityHost.sh ✔ 12:34:29 El siguiente codigo realiza un ping a www.platzi.com 10 veces y guarda la salida en un archivo de txt El Resultado fue: PING platzi.com (104.17.176.85) 56(84) bytes of data. 64 bytes from 104.17.176.85 (104.17.176.85): icmp_seq=1 ttl=55 time=46.6 ms 64 bytes from 104.17.176.85 (104.17.176.85): icmp_seq=2 ttl=55 time=53.8 ms 64 bytes from 104.17.176.85 (104.17.176.85): icmp_seq=3 ttl=55 time=61.1 ms 64 bytes from 104.17.176.85 (104.17.176.85): icmp_seq=4 ttl=55 time=46.6 ms 64 bytes from 104.17.176.85 (104.17.176.85): icmp_seq=5 ttl=55 time=47.9 ms 64 bytes from 104.17.176.85 (104.17.176.85): icmp_seq=6 ttl=55 time=46.0 ms 64 bytes from 104.17.176.85 (104.17.176.85): icmp_seq=7 ttl=55 time=51.3 ms 64 bytes from 104.17.176.85 (104.17.176.85): icmp_seq=8 ttl=55 time=48.3 ms 64 bytes from 104.17.176.85 (104.17.176.85): icmp_seq=9 ttl=55 time=50.2 ms 64 bytes from 104.17.176.85 (104.17.176.85): icmp_seq=10 ttl=55 time=55.3 ms --- platzi.com ping statistics --- 10 packets transmitted, 10 received, 0% packet loss, time 9018ms rtt min/avg/max/mdev = 45.986/50.709/61.115/4.583 ms /home/caa/shellCourse -rw-rw-r-- 1 caa caa 969 ene 11 12:34 reto.txt >
# !/bin/bash # Reto 1 Curso de programacion en bash shell # autor:CAA echo "El siguiente codigo realiza un ping a www.platzi.com 10 veces y guarda la salida en un archivo de txt" homecurso=pwd option=$(ping -c 10 platzi.com > $homecurso/reto.txt) result=$(head -n 20 reto.txt && pwd; ls -lh reto.txt) echo "\nEl Resultado fue: $result"
#! /bin/bash option=$1 result=$2 echo -e "option= $1\n" echo "result= $2"
Está mal
No deberia llevar el signo de dollar ($) al momento de inicializar la variable no? y si estoy mal corrijanme.
Este reto es muy sencillo, no involucra todo lo que se aprendió en esta sección
Yo pensé que el neofetch era built-in pero hay que descargarlo...
simón el neofetch tienes que instalarlo jaja
Reto 1
Si quieren probar el comando "cowsay" deben instalarlo primero
# !/bin/bash # Reto 1: # Programa que inicializa dos variables e imprime sus valores option=13 result=233 cowsay "Has seleccionado la opción: $option" cowsay "El seultado de 233 + 13 es:" $((result + option))
Jajajaj está buenísimo xD
xd
La mayoría han escrito equivocadamente el shebang (incluyendo los ejemplos del profesor según correría en la mayoría de sistemas).
El shebang debe escribirse sin espacios, y es una ruta al binario del intérprete que ejecutará obligadamente el programa.
#!/bin/bash
Debe ir en la primer línea, su ausencia le dice a la shell que infiera a partir de la extensión el intérprete para la ejecución del programa.
Aún así, y ya que es posible que algunos tengan un intérprete personalizado, o que esté ubicado en otras posiciones en otros sistemas operativos diferentes a GNU/Linux o MacOS X, yo recomendaría usar el siguiente shebang que pregunta al entorno cuál intérprete está activo (a menos que conozcan la ruta exacta del intérprete personalizado).
#!/usr/bin/env bash
El uso de este entorno personalizado (y por tanto la utilidad de un buen shebang) es aún más evidente en Python, donde diferentes proyectos probablemente tengan su propio entorno virtual, o se esté usando un entorno virtual en conda, para tales casos hay dos opciones.
Activar el entorno virtual antes de ejecutar o depender del script.
En el script de python:
#!/usr/bin/env python print("Resto del programa")
En la terminal (o Bash script):
source env/bin/activate ./script.py
O añadir el shebang correcto a cada script.
En el script de Python:
#!path/relativo/o/absoluto/del/entorno/virtual/python print("Resto del programa")
En la terminal:
./script.py
El mio verifica si se pasaron argumentos, si no, te pide que los pongas.
1 #!/usr/bin/env sh 2 3 if [[ $# -eq 0 ]] 4 then 5 printf "Enter option: " 6 read option 7 printf "Enter result: " 8 read result 9 printf "Option: $option\tResult: $result\n" 10 else 11 option=$1 12 result=$2 13 printf "Option: $option\tResult: $result\n" 14 fi
$ sh utilityHost.sh 13 43 Option: 13 Result: 43 $ sh utilityHost.sh Enter option: 565 Enter result: 4564 Option: 565 Result: 4564
Mi ejercicio:
Para imprimir el valor de la variable option en un script de Bash, usas el comando echo seguido de la cadena que deseas mostrar. La sintaxis que proporcionaste es correcta:
echo "Valor de la variable 'option': $option"
Asegúrate de que la variable option esté definida antes de ejecutar este comando. Si no tiene un valor asignado, el resultado será:
Valor de la variable 'option':
Recuerda que en Bash, las variables se definen sin el símbolo $ y se accede a su valor con $.
Aqui tengo mi respuesta al reto:
Entrada:
Salida:
#`` ``!/bin/bash
# Author: Jonathan
echo "Ingresa un número: "
read number
result=$((number * 5))
echo "El número ingresado multiplicado por 5 es igual a: $result"
Mi aporte del reto
#!/bin/bash #Desarrollar un programa llamado utilityHost.sh, dentro de él vamos a declarar #dos variables una llamada option, otra llamada result, #vamos a inicializarles e imprimir sus valores. opcion=$(ping -c 10 192.168.1.10 > ~/Documentos/curso_bash/reto.txt) result=$(head -n 20 reto.txt && pwd; ls -lh reto.txt) opcion2=$(screenfetch >> reto.txt) #> ~/Documentos/curso_bash/reto.txt echo "$opcion2"
! /bin/bash
# desarrollar un programa llamado utility y declarar dos variables e imprimirlas
option=$((5*30))
result=$option
echo "Resultado:$result"