1*d253cfe3SJilles Tjoelker# Although POSIX leaves the result of expanding ${#@} and ${#*} unspecified, 2*d253cfe3SJilles Tjoelker# make sure it is at least numeric. 3*d253cfe3SJilles Tjoelker 4*d253cfe3SJilles Tjoelkerset -- bb cc ddd 5*d253cfe3SJilles Tjoelkerset -f 6*d253cfe3SJilles Tjoelkerlengths=${#*}${#@}"${#*}${#@}"$(echo ${#*}${#@}"${#*}${#@}") 7*d253cfe3SJilles TjoelkerIFS= 8*d253cfe3SJilles Tjoelkerlengths=$lengths${#*}${#@}"${#*}${#@}"$(echo ${#*}${#@}"${#*}${#@}") 9*d253cfe3SJilles Tjoelkercase $lengths in 10*d253cfe3SJilles Tjoelker*[!0-9]*) 11*d253cfe3SJilles Tjoelker printf 'bad: %s\n' "$lengths" 12*d253cfe3SJilles Tjoelker exit 3 ;; 13*d253cfe3SJilles Tjoelker????????????????*) ;; 14*d253cfe3SJilles Tjoelker*) 15*d253cfe3SJilles Tjoelker printf 'too short: %s\n' "$lengths" 16*d253cfe3SJilles Tjoelker exit 3 ;; 17*d253cfe3SJilles Tjoelkeresac 18