Vamos a escribir un script de shell para mejorar el calendario para aceptar cualquier mes como MM o MMM o solo el año como AAAA o mes y año. Nuestro script de shell aceptará al menos un argumento que será mes o año. Se utilizarán máximo 2 argumentos que serán mes y año. Se mostrará un calendario mejorado utilizando los argumentos especificados. Vamos a usar los comandos cal y ncal en Linux para mostrar calendarios.
Método 1: Usando el comando cal
Si un usuario quiere una vista rápida del calendario en la terminal de Linux, cal es el comando para usted. De forma predeterminada, el comando cal muestra el calendario del mes actual como salida.
El comando cal en Linux se usa para ver el calendario de un mes específico o de todo el año. Un solo argumento en el comando cal define el año de cuatro dígitos (1-9999) que se mostrará. El mes (1-12) y el año (1-9999) se representan mediante dos parámetros. Si no se dan argumentos, se muestra el mes actual.
Podemos usar el siguiente comando para saber más sobre la utilidad cal en Linux:
man cal
Por ejemplo:
Acercarse:
- comienzo
- Comprobar si los argumentos se pasan o no
- Si no se pasan argumentos, muestra «Argumentos no válidos y programa de salida»
- Si se pasan 2 argumentos entonces
- verifique si los primeros argumentos son mayores que 12 y el segundo argumento es mayor que 2021 (año actual).
- Si es mayor, muestre «año o mes no válido» y vaya al paso 12
- De lo contrario, si solo se pasa un argumento, verifique si es mayor que 12.
- Si es mayor a 12 entonces se considera un año.
- A continuación, muestra un calendario del año especificado.
- de lo contrario, si el argumento es menor que 12, el argumento pasado es un mes.
- Muestra el calendario del mes especificado del año actual.
- Salida.
A continuación se muestra la implementación usando el comando cal: –
# Shell Script to Enhance the Calendar to Accept # MM, MMM, YYYY using cal command # check whether arguments are passed or not if [ $# -eq 0 ] then # if arguments are not passed then display this echo "Invalid Arguments" # exit the program exit fi # if 2 arguments are passed if [ $# -eq 2 ] then # if argument 1 is greater than 12 or argument 2 # is greater than 2021 if [ $1 -gt 12 -o $2 -gt 2021 ] then # then display invalid month or year echo "invalid Year or month" # else display calendar of the specified month # and year else ncal $1 $2 fi # if only one argument is passed then else if [ $# -eq 1 ] then # if argument is greater than 12 if [ $1 -gt 12 ] then cal $1 # display calendar of specified year # else display calendar of specified month else case $1 in #start switch case 01) m = jan;; 02) m = feb;; 03) m = mar;; 04) m = apr;; 05) m = may;; 06) m = jun;; 07) m = jul;; 08) m = aug;; 09) m = sep;; 10) m = oct;; 11) m = nov;; 12) m = dec;; esac # end switch case echo \" Calander for $1 Month : \" # display calendar of specified month using -m cal -m $1 fi fi fi
Producción:
Método 2: Usando el comando ncal
El comando ncal también se puede usar para mostrar el calendario. El comando ncal tiene la misma funcionalidad que cal, excepto que puede mostrar el calendario verticalmente con semanas en columnas en lugar de horizontalmente. Podemos usar el siguiente comando para saber más sobre la utilidad cal en Linux:
man ncal
Por ejemplo:
En los ejemplos anteriores, en el comando cal o ncal, si el usuario escribe el comando «cal 2» en la terminal, se mostrará todo el calendario del año 0002. Pero para mejorar el calendario, si el usuario ingresa 2 como un argumento, se debe mostrar el segundo mes del año en curso. Usaremos la utilidad cal/ncal para mejorar el calendario para aceptar MM, MMM, YYYY.
A continuación se muestra la implementación usando el comando ncal: –
# Shell Script to Enhance the Calendar to Accept MM, MMM, YYYY # using ncal command # check whether arguments are passed or not if [ $# -eq 0 ] then # if arguments are not passed then display this echo "Invalid Arguments" # exit the program exit fi if [ $# -eq 2 ] # if 2 arguments are passed then # if argument 1 is greater than 12 or argument 2 is # greater than 2021 if [ $1 -gt 12 -o $2 -gt 2021 ] then # then display invalid month or year echo "invalid Year or month" # else display calendar of the specified month and year else ncal $1 $2 fi else if [ $# -eq 1 ] # if only one argument is passed then then if [ $1 -gt 12 ] # if argument is greater than 12 then cal $1 # display calendar of specified year else # else display calendar of specified month case $1 in #start switch case 01) m = jan;; 02) m = feb;; 03) m = mar;; 04) m = apr;; 05) m = may;; 06) m = jun;; 07) m = jul;; 08) m = aug;; 09) m = sep;; 10) m = oct;; 11) m = nov;; 12) m = dec;; esac # end switch case echo \" Calander for $1 Month : \" ncal -m $1 # display calendar of specified month using -m fi fi fi #end if
Producción:
El comando ncal mostrará un calendario de una manera más mejorada.
En el script, si el usuario ingresa un argumento, verificaremos si es mayor que 12, si es mayor que 12, el argumento se considerará como un año; de lo contrario, el argumento se considerará como un mes. Si no se proporciona ningún argumento, se mostrará «Argumentos no válidos». Si se dan 2 argumentos, denotará un mes y un año.
Para ejecutar el script de shell, use:
./cal.sh <argument 1> <argument 2>
Ejemplo :
./cal.sh 4 ./cal.sh 8 2021 ./cal.sh 1999
Otorgue permiso de ejecución al script de shell usando:
chmod +x cal.sh
Por lo tanto, el Shell Script anterior mejorará el calendario para aceptar MM, MMM, YYYY.
Publicación traducida automáticamente
Artículo escrito por shantanujain18 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA