From d49aabc4992f3787b240e1f7ffe36c0aeaa7b380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Ortega=20Froysa?= Date: Tue, 31 Dec 2024 17:45:52 +0100 Subject: [PATCH] Prevent string splitting. --- d6.sh | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/d6.sh b/d6.sh index 1280b72..a9d5412 100755 --- a/d6.sh +++ b/d6.sh @@ -44,7 +44,7 @@ function print_help() { } function test_case() { - if [ $1 != "lower" ] && [ $1 != "upper" ] && [ $1 != "capital" ] + if [ "$1" != "lower" ] && [ "$1" != "upper" ] && [ "$1" != "capital" ] then return 1 else @@ -62,52 +62,59 @@ do case $arg in v) echo "d6 v$VERSION" - exit 0;; + exit 0 + ;; h) print_help - exit 0;; + exit 0 + ;; n) - NUM_WORDS=$OPTARG;; + NUM_WORDS=$OPTARG + ;; f) - WORDLIST="$OPTARG";; + WORDLIST="$OPTARG" + ;; d) - DELIMITER="$OPTARG";; + DELIMITER="$OPTARG" + ;; c) - if test_case $OPTARG + if test_case "$OPTARG" then CASE="$OPTARG" else echo "'$OPTARG' is an invalid case. Use 'capital', 'lower', or 'upper'." exit 1 - fi;; + fi + ;; ?) print_usage exit 2 + ;; esac done WORDS="" -for i in $(seq 1 $NUM_WORDS) +for i in $(seq 1 "$NUM_WORDS") do ROLLS="" for j in {1..5} do - ROLLS="$((1 + $RANDOM % 6))$ROLLS" + ROLLS="$((1 + RANDOM % 6))$ROLLS" done - if [ $CASE == "upper" ] + if [ "$CASE" == "upper" ] then - WORD="$(awk "/$ROLLS/{ print toupper(\$2) }" $WORDLIST)" - elif [ $CASE == "lower" ] + WORD="$(awk "/$ROLLS/{ print toupper(\$2) }" "$WORDLIST")" + elif [ "$CASE" == "lower" ] then - WORD="$(awk "/$ROLLS/{ print tolower(\$2) }" $WORDLIST)" + WORD="$(awk "/$ROLLS/{ print tolower(\$2) }" "$WORDLIST")" else - WORD="$(awk "/$ROLLS/{ print \$2 }" $WORDLIST)" + WORD="$(awk "/$ROLLS/{ print \$2 }" "$WORDLIST")" WORD="${WORD^}" fi - if [ $i -eq $NUM_WORDS ] + if [ "$i" -eq "$NUM_WORDS" ] then WORDS="${WORDS}${WORD}" else