Shell script user prompt/input Shell script user prompt/input shell shell

Shell script user prompt/input


If you want to be prompted (as opposed to passing the date in as a parameter), use the following logic (or something similar):

date=while [ -z $date ]do    echo -n 'Date? '    read datedone

That loop will continue to prompt for the date until the user enters something (anything) other than a simple RETURN.

If you want to add some simple validation, and you're using a version ofKSH that's KSH93 or better, do something like this:

date=while [ -z $date ]do    echo -n 'Date? '    read date    if [[ $date =~ ^[0-9]{1,2}/[0-9]{1,2}/[0-9]{1,4}$ ]]    then        break    fi    date=done

See the ksh93 man page for more info.


In general from a shell script command line arguments can be accessed like:

$0, $1, ... $N

So you could replace the hardcoded date like:

./room_xls.pl $1

And run it like

./myscript 1/12/09


$1 is the first command line argument. This goes up to $9. Check this tutorial for more basic ksh syntax.