if [[ $test_variable =~ $a_regular_expression ]]; then # you have matched the regular expression else # you haven't matched the regular expression fi
Here's the script:
#! /bin/bash #TODO: Fill in help message usage() { cat << EOF usage: $0 FILENAME NPROCS options This script reads command-line args and dumps them to stdout # describe arguments here OPTIONS: -t blah -r blah EOF } # Set default values for variables ram=1G time="48:00:00" #TODO: This time format only specifies that times are # numbers up to 49:00:00. Correct this so that # only times up to 48:00:00 are allowed time_format='[0-4][0-9]:[0-5][0-9]:[0-5][0-9]' # Read command-line arguments and set variables while getopts "r:t:h?" OPTION do case $OPTION in ?) usage exit 1 ;; h) usage exit 1 ;; r) ram="$OPTARG"G # TODO: Check that ram is an integer # within the range 1-12 # Remove "used" argument shift $((OPTIND-1)); OPTIND=1 ;; t) time=$OPTARG # Check that time format is correct if [[ $OPTARG =~ $time_format ]]; then time=$OPTARG else echo "ERROR: Time format wrong" exit fi # Remove "used" argument shift $((OPTIND-1)); OPTIND=1 ;; esac done filename=$1 # TODO: Check that filename is a valid file identifier nprocs=$2 # TODO: Check that nprocs is a valid integer # Dump all variable values to stdout echo time=$time echo ram=$ram echo filename=$filename echo nprocs=$nprocs