Curso de Programaci贸n en Bash Shell

Curso de Programaci贸n en Bash Shell

Marco Antonio Toscano Freire

Marco Antonio Toscano Freire

Script con Argumentos

8/43
Recursos

Hay algunos identificadores para cuando ejecutamos un script con argumentos

$0: Se refiere al nombre del Script
$1 al ${10}: Se refiere al n煤mero de argumento. Si es m谩s de uno lo colocamos dentro de llaves.
$#: Es 煤til para conocer el n煤mero de argumentos enviados.
$*: Con este podemos conocer todos los argumentos enviados.

Aportes 29

Preguntas 2

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

#!/usr/bin/env bash
#lec_4_file
#Executing scripts with arguments

# $0 //tp get the name of the script
# $1 $(10) //tp get the arguments
# $# //to count arguments
# $* to print all the arguments

courseName=$1 #//first argument to courseName
courseTimetable=$2

echo "parameters:"
echo "courseName:$courseName"
echo "courseShip:$courseTimetable"

echo "parameters number:$#"
echo "list parameters:$*"

#to execute use:
# bash lec_4_file.sh "name course" "18:00 to 20:00" "OTHER_I" "OTHER_II"

Tengo este script, para complementar, que muestra como funcionan los car谩cteres especiales de los que habla el profe y otros mas.
Mi script utiliza Firefox para ejemplificar el 煤ltimo proceso en segundo plano, pueden cambiarlo por otro programa para que lo vean funcionar 馃槂

#!/bin/bash 
#
#Ejecuci贸n: $ ./parametros.sh argumento1 argumento2 argumento3
#Cuantos argumentos se deseen
#By Dex

 
# Muestra el nombre del script 
printf "\nPAR脕METRO ESPECIAL \$0\n"
echo "El nombre del script es: $0" 

# Muestra el n煤mero de parametros
printf "\nPAR脕METRO ESPECIAL \$#\n" 
echo "Hay $# par谩metros" 

# Lista de par谩metros (en un solo argumento) 
printf "\nPAR脕METRO ESPECIAL \$*\n"
echo "Par谩metros (un solo argumento) : $*" 


# Lista de par谩metros (un par谩metro por argumento) 
printf "\nPAR脕METRO ESPECIAL \[email protected]\n"
echo "Par谩metros (un par谩metro por argumento) :" 
for param in [email protected]
do 
echo "$param" 
done 

# Muestra el PID del script 
printf "\nPAR脕METRO ESPECIAL \$$\n"
echo "El PID del script ejecutado es: $$" 

# Creamos un proceso en segundo plano 
printf "\nPAR脕METRO ESPECIAL \$!\n"
echo "Abriendo Firefox en segundo plano . . ."
firefox & 

# Muestra el PID del proceso ejecutado en segundo plano 
echo "El PID de Firefox ejecutandose en segundo plano es: $!" 

# Muestra el c贸digo de retorno del 煤ltimo comando, en este caso "echo" 
printf "\nPAR脕METRO ESPECIAL \$?\n"
echo "El c贸digo de retorno del comando es: $?" 

# Generamos un error para ejemplificar el cas
echo "Generando un error . . ." 
lss -l

# Muestra el c贸digo de retorno del 煤ltimo comando 
echo "El c贸digo de retorno del comando err贸neo es: $?" 

$0 = Nombre del Script
$1 al ${10} = El numero de argumento. Si es mas de un d铆gito se pone entre llaves.
$# = Contador de argumentos
$* = Refiere a todos los argumentos

the father of argc & argv

Era tan dificil escoger un terminal que se vean bien las variables en vez de este espacio negro?Es desagradable seguir el curso con esta interfaz tan mala.

Los colores de la terminal con vim son horrorosos, el azul oscuro sobre fondo negro no se ve nada.

En vez de:

$~ bash sample.sh "Hey" "Gopher"

Intentar:

$~ bash sample.sh {"Hey","Gopher"}

Que bonito 馃槂

! /bin/bash

Programa para ver el proceso de argumentos

nombreCurso=$1
horarioCurso=$2

echo "El nombre del curso es: $nombreCurso dictado en el horario de: $horarioCurso"
echo "El numero de parametros enviados es: $#
echo 鈥淟os parametros enviados son: $*鈥

Terminado saliendo de vim con esc shift :wq queda grabado.

En la consola procedemos a cambiar permisos con chmod +x para ejecutarlo.

Por si quieres solo copiarlo!

#!/bin/bash
#Parametros

nombreCurso=$1
horarioCurso=$2

echo "EL nombre del curso es: $nombreCurso"
echo "El horario del curso es: $horarioCurso"
echo "El numero de parametros enviados es de: $#"
echo 鈥淟os parametros enviados son: $*鈥

C贸mo ejecutar un script con argumentos

Un resumen de los identificadores: Link.

Excelente clase.

Existen varios tipos de par谩metros especiales como: 聽$*, [email protected], $#, $$, $!, $?, $- y $_. pueden consultar cada uno de los par谩metros desde el manual `man bash`

Ok lo que entend铆:

$ para asignar un parametro
$# para arrojar el numero de parametros mandado
$* para arrojar ESOS parametros

Muy bueno el curso, solo que me gustar铆a que pusiera algunos ejercicios para entretenerme un rato pensando y aplicando lo aprendido.

Se ve muy poco

Excelente Marco.
Muchas gracias por esto, fue genial

$0: Nombre del script
$1 al $[10]: Argumantos
$#: Contador de argumentos
$*: Refiere a todos los argumentos

Hola, quiero compartirles mis apuntes.

https://www.instagram.com/p/CFI9WGmHWoX/?igshid=6wxl40euucz7

Saludos.

genial

Listo

 # !/bin/bash/
 # Programa que recibe argumentos

 nombreCita=$1
 horarioCita=$2

 echo "La cita es: $nombreCita a las $horarioCita"
 echo "El numero de partametros enviados es $#"
 echo "Los paarmetros enviados son $* y son $1 y $2"

para ejecutar

./4_argumentos.sh "Frijolada" "12:00 pm"

Hola Muchachos,
Como yo no entendi muy bien esta parte me puse a mirar bien como es el tema de los parametros. Les adjuntos dos imagenes, la primera es el codigo bash para la ejecucion del script, la segunda es el resultado del codigo. En esta ultima aclaro como se pasan los parametros. Si alguien no entiend me dice鈥

$

#! /bin/bash

course_name=$1
course_time=$2

echo "The course name is: $course_name, taught at $course_time."
echo "The sent params numbers is: $#."
echo "The sent params are: $*"
# ! /bin/bash
# Programa para ejemplificar el paso de argumentos
# Autor: Martin Davila

nombreCurso=$1
horarioCurso=$2

echo "El nombre del curso es: $nombreCurso dictado en el horario de $horarioCurso"
echo "El n煤mero de par谩metros enviados es: $#"
echo "Los par谩metros enviados son: $*"```