| |
---|
| | # specification of a default response and a list of legitimate |
---|
| | # single character answers to the prompt. If this list is empty, |
---|
| | # then any response to the prompt is accepted. |
---|
| | |
---|
| | # $Id: tpromptuser.sh,v 1.101 2010/10/07 18:26:58 tundra Exp $ |
---|
| | # $Id: tpromptuser.sh,v 1.102 2010/10/07 18:34:13 tundra Exp $ |
---|
| | |
---|
| | ##### |
---|
| | # Constants |
---|
| | ##### |
---|
| |
---|
| | # Layout Of Fields In Prompt Record: |
---|
| | # |
---|
| | # Prompt<delim>Default Response (If user just hits Enter)<delim>Legal Answers |
---|
| | |
---|
| | foo="Would you like to foo?${DL}Y${DL}" # Empty last field means accept anything |
---|
| | # Examples |
---|
| | |
---|
| | foo="Would you like to foo?${DL}Y${DL}" # Empty last field means accept anything |
---|
| | bar="Would you like to bar?${DL}\!${DL}y Y n N" |
---|
| | baz="Would you like to baz?${DL}n${DL}yes Yes no No " |
---|
| | bat="Would you like to bat?${DL}""${DL}yes Yes no No " |
---|
| | baz="Would you like to baz?${DL}n${DL}yes Yes no No" |
---|
| | bat="Would you like to bat?${DL}${DL}yes Yes no No " |
---|
| | |
---|
| | |
---|
| | # Display the records for purposes of this example only |
---|
| | |
---|
| | echo "Before: foo->$foo bar->$bar baz->$baz bat->$bat" |
---|
| | |
---|
| | |
---|
| | # ---------- Nothing Should Change Below This Line ---------- # |
---|
| | |
---|
| | ##### |
---|
| | # Actual Prompting Logic |
---|
| | ##### |
---|
| |
---|
| | # Now read input and check it against list of valid responses |
---|
| | |
---|
| | DONE=False |
---|
| | |
---|
| | while [ $DONE = False ] |
---|
| | while [ _$DONE = _False ] |
---|
| | do |
---|
| | |
---|
| | read -p "${prompt} (Default: ${default}) " ANS |
---|
| | |
---|
| | # We're done if the user took the default OR if the "Legal |
---|
| | # Answers" field is empty (which means we accept anything) |
---|
| | |
---|
| | if [ _$ANS = _ ] || [ _$answers = _ ] |
---|
| | if [ _$ANS = _ ] || [ _"$answers" = _ ] |
---|
| | then |
---|
| | DONE=True |
---|
| | |
---|
| | # Otherwise, make sure answer is legit |
---|
| |
---|
| | |