Script inserimento data
Inviato: martedì 14 marzo 2017, 22:25
Salve a tutti, sono un nuovo utente sia del forum che del mondo linux. Qualche giorno fa mi sono imbattuto nella programmazione di script e volevo farne uno che controllasse il corretto inserimento di una data. Ho cercato anche di imparare il funzionamento delle regular expression per realizzarlo. Lo script è questo:
nella stringa controllata dal grep dovrei permettere, per il giorno, l'inserimento o in formato 0x o in formato x, in un giorno che varia o da 1 a 9, o da 10 a 29 o 30 o 31, con il metacarattere '|' preceduto da '\' che so che solitamente serve a non trattare il carattere successivo come metacarattere, ma non in questo caso dove funziona contrariamente (utilizzo la pipe per non accettare l'inserimento di un giorno maggiore di 31).Dopo '/' è permesso l'inserimento di un mese con numero compreso tra 1 e 12 ( anche questo può essere inserito in formato 0x), e infine l'anno con qualsiasi numero a 4 cifre.
Nessun problema fino a quando provo solo con l'inserimento del giorno... ma non appena cerco di controllare anche il mese, per qualsiasi data inserisca ricevo "ok". Spero di essere stato abbastanza chiaro e ringrazio in anticipo chi vorrà aiutarmi.
Codice: Seleziona tutto
#!bin/bash
#verificare che la data inserita sia corretta
echo "Inserire data"
read date
if ( echo $date | grep "0[1-9]\|[1-9]\|[1-2][0-9]\|3[0-1]/[1-9]\|0[1-9]\|1[0-2]/[0-9][0-9][0-9][0-9]" ) then
echo ok
else
echo no
fi
Nessun problema fino a quando provo solo con l'inserimento del giorno... ma non appena cerco di controllare anche il mese, per qualsiasi data inserisca ricevo "ok". Spero di essere stato abbastanza chiaro e ringrazio in anticipo chi vorrà aiutarmi.