Snažím se porovnat vzor data pomocí case příkaz, ale nefunguje. Může mi někdo pomoci?
 Vstup :01/05/1900 nebo 5/6/1900 
Použité vyjádření případu:
ptn="[0-9]|[0-9][0-9]/[0-9]|[0-9][0-9]/[0-9][0-9]|[0-9][0-9][0-9][0-9]"
case "$dt" in 
    $ptn ) echo "valid pattern" ;;
    *) echo "invalid"
esac
Ale vzor použitý v příkazu case se nevyhodnocuje pro výše uvedené 2 data.
Přijatá odpověď:
 Zkuste to. case rozumí pouze globům, takže manipulace s regulárním výrazem není přímočará. =~ Operátor zde však nabízí některá řešení.
#!/bin/bash
INP="01/05/1900"
ptn="^([0-9]|[0-9][0-9])/([0-9]|[0-9][0-9])/([0-9][0-9]|[0-9][0-9][0-9][0-9])$"
if [[ $INP =~ $ptn ]] ; then
    echo valid pattern
else
    echo invalid
fi
 Pokud chcete zmenšit velikost regulárního výrazu, ^[0-9]{1,2}/[0-9]{1,2}/([0-9]{2}|[0-9]{4})$ funguje stejně dobře.
            Jak dostat Ls do seznamu adresářů s koncovým lomítkem?         
            Linux – Získání skutečného OS pouze s otevřeným zdrojovým kódem běžícího na telefonu? Android?