From: Darrick J. Wong <djwong@xxxxxxxxxx> Clean up the code that reads group names in from the command line to take advantage of the read command's ability to display a prompt. While we're at it, we should abort the script if the group list encounters EOF, and we can tighten up some of the other sh-isms too. Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> --- new | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/new b/new index 6b7dc5d4..ea7cf25e 100755 --- a/new +++ b/new @@ -91,16 +91,13 @@ group_names() { }' doc/group-names.txt } -if [ $# -eq 0 ] -then - +if [ $# -eq 0 ]; then + prompt="Add to group(s) [other] (separate by space, ? for list): " while true do - echo -n "Add to group(s) [other] (separate by space, ? for list): " - read ans - [ -z "$ans" ] && ans=other - if [ "X$ans" = "X?" ] - then + read -p "${prompt}" ans || exit 1 + test -z "${ans}" && ans=other + if [ "${ans}" = "?" ]; then echo $(group_names) else # only allow lower cases, spaces, digits and underscore in group