Linux/Unix tiene la funcionalidad incorporada para mostrar la hora actual. Por lo general, Linux muestra la hora actual en formato general en lugar de palabra, y con esto puede que algún usuario no esté de acuerdo.
Entonces, para mostrar la hora actual en un formato mejor y más bonito, aquí se proporciona un script bash. Muestra la hora actual en formato de 12 horas que estará en estilo de palabra en lugar de general.
Si ejecutamos directamente el comando de tiempo en Linux o Unix, obtendrá un resultado como el siguiente
Command: date +%r Output: 11:02:08 PM IST
Nuestra tarea es mostrar el tiempo en Word:
Ejemplo:
Current Time is : 02:03:25 AM IST Time in Word is : Two hour Three minutes Twenty-Five second AM
Enfoque del código de secuencia de comandos: para escribir la secuencia de comandos para mostrar la hora en el mundo, necesitamos algunos comandos simples incorporados de Linux como «fecha», «eco»,
- Algunas secuencias de comandos de shell básicas y, a través de esto, siga los pasos a continuación para escribir el código de la secuencia de comandos.
- Obtenga todos los componentes de tiempo como hora, minutos y segundos en diferentes variables.
- Haga una array de strings que tenga el número del 0 al 19 en una palabra y use esta palabra usando el índice de la array.
- Cree otra array de strings que contengan el valor como 0,10,20,30,40,50,60 en Word.
- Ahora, cambie el formato de 24 horas a un formato de 12 horas usando una instrucción if-else.
- Cree una función que tome un argumento entero y devuelva ese entero en palabra (aquí el número puede tener hasta 2 dígitos porque en el tiempo solo hay un número de hasta 2 dígitos).
- Ahora, convierta todos los componentes del tiempo en la palabra e imprima la string completa de tiempo usando el comando «echo».
Código de secuencia de comandos:
# ## bash script to display Time in word # print current time in original function format of Linux/Unix echo "Current Time is : " `date +%r` echo # getting hour, minutes and seconds value in separate as integer hour=`date +%-H` minutes=`date +%-M` seconds=`date +%-S` post='AM' # create array of strings two show time in word time=(Zero One Two Three Four Five Six Seven Eight Nine Ten Eleven Twelve Thirteen Fourteen Fifteen Sixteen Seventeen Eighteen Nineteen) time_ten=(Zero Ten Twenty Thirty Forty Fifty Sixty) # check hour is greater than "12" or not # if it than use 12-hour format to show the current time if [[ $hour -gt 11 ]] then let "hour -= 12" post="PM" fi # check if hour is 00 then print 12AM if [[ $hour -eq 0 ]] then let "hour = 12" fi # Function for get current hour,minutes and seconds in words function getNumber(){ # check condition when time is less than 20 and get value directly from array if [[ $1 -lt 20 ]] then timeInWord=${time[$1]} else # else block when time is greater than 20 ( minutes and seconds can be up to 59) f=`expr $1 / 10` s=`expr $1 % 10` # check condition when first part of the time is zero than we don't have to print that value if [[ $s -eq 0 ]] then timeInWord=${time_ten[$f]} else timeInWord="${time_ten[$f]}-${time[$s]}" fi fi } # make gloabal variable for timeInWord timeInWord = "Geeks For Geeks" # get hour in word getNumber $hour hourInWord=$timeInWord # get minutes in word getNumber $minutes minutesInWord=$timeInWord # get seconds in word getNumber $seconds secondsInWord=$timeInWord # print time in usual and simple word format in one line echo "Time in Word is : $hourInWord hour $minutesInWord minutes $secondsInWord second $post" # END
Producción:
Publicación traducida automáticamente
Artículo escrito por aditya32123 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA