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 “Los 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 “Los 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: $*"```