Contenido del curso
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
Luis Alberto Juarez Corona
Cristian Archila Atehortua
Angel Rosendo Mendoza Rodríguez
Izaird Mothelet
Santiago Muneton
Raul Santos
Gabriela Carolina Navarro Quintero
Gregorio Andres Martinez Ruiz
Bryan Imbaquingo
Irving Juárez
Bryan Imbaquingo
Juan Antonio Cuahonte Isla
Miguel Angel Reyes Moreno
Cristobal Nyram
Julián David Márquez fuentes
Rubén Téllez Gerardo
Nicolas Bustos
Arsenio Antonio Pérez Pérez
Alan Mena
Dimas Antonio Mendoza Lozano
Marvin Javier Santos Fernández
Miguel Ramírez
Jose de Jesus Valdez Sepulveda
Isaac Bryan Ascanoa Roncall
Jonathan Santoyo
Jose Luis Flores
cristian rodriguez
Si 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"