Browse Source

Add quoting (based on ShellCheck)

Alois Mahdal 3 years ago
parent
commit
d8d080bbab
1 changed files with 49 additions and 49 deletions
  1. 49
    49
      99bottles.sh

+ 49
- 49
99bottles.sh View File

@@ -22,22 +22,22 @@ pred() {
22 22
     #
23 23
     local numeral=$1    # number in word form
24 24
     case $numeral in
25
-        *nine)      echo ${numeral%nine}eight;;
26
-        *eight)     echo ${numeral%eight}seven;;
27
-        *seven)     echo ${numeral%seven}six;;
28
-        *six)       echo ${numeral%six}five;;
29
-        *five)      echo ${numeral%five}four;;
30
-        *four)      echo ${numeral%four}three;;
31
-        *three)     echo ${numeral%three}two;;
32
-        *two)       echo ${numeral%two}one;;
33
-        one)        echo zero;;
34
-        *-one)      echo ${numeral%-one};;
35
-        *one)       echo ${numeral%one};;
36
-        ten)        echo nine;;
37
-        eleven)     echo ten;;
38
-        twelve)     echo eleven;;
39
-        *teen)      teenpred $numeral;;
40
-        *ty)        tenspred $numeral;;
25
+        *nine)      echo "${numeral%nine}eight" ;;
26
+        *eight)     echo "${numeral%eight}seven" ;;
27
+        *seven)     echo "${numeral%seven}six" ;;
28
+        *six)       echo "${numeral%six}five" ;;
29
+        *five)      echo "${numeral%five}four" ;;
30
+        *four)      echo "${numeral%four}three" ;;
31
+        *three)     echo "${numeral%three}two" ;;
32
+        *two)       echo "${numeral%two}one" ;;
33
+        one)        echo "zero" ;;
34
+        *-one)      echo "${numeral%-one}" ;;
35
+        *one)       echo "${numeral%one}" ;;
36
+        ten)        echo "nine" ;;
37
+        eleven)     echo "ten" ;;
38
+        twelve)     echo "eleven" ;;
39
+        *teen)      teenpred "$numeral" ;;
40
+        *ty)        tenspred "$numeral" ;;
41 41
         zero)       echo "";  #to terminate
42 42
     esac
43 43
 }
@@ -49,7 +49,7 @@ teenpred() {
49 49
     local numeral=$1    # number in word form
50 50
     case $numeral in
51 51
         thirteen)   echo twelve;;
52
-        *)          echo $(crunchprefix $(pred $(uncrunchprefix ${numeral%teen})))teen;;
52
+        *)          echo "$(crunchprefix "$(pred "$(uncrunchprefix "${numeral%teen}")")")teen" ;;
53 53
     esac
54 54
 }
55 55
 
@@ -60,7 +60,7 @@ tenspred() {
60 60
     local numeral=$1    # number in word form
61 61
     case $numeral in
62 62
         twenty)     echo nineteen;;
63
-        *) echo $(crunchprefix --tens $(pred $(uncrunchprefix ${numeral%ty})))ty-nine;;
63
+        *) echo "$(crunchprefix --tens "$(pred "$(uncrunchprefix "${numeral%ty}")")")ty-nine";;
64 64
     esac
65 65
 }
66 66
 
@@ -74,15 +74,15 @@ crunchprefix() {
74 74
     #
75 75
     local numeral       # number in word form
76 76
     local tensop        # 'true' if --tens option is active
77
-    [ $1 = --tens ] && { tensop=true; shift; }
77
+    [ "$1" = --tens ] && { tensop=true; shift; }
78 78
     numeral=$1
79 79
     case $numeral in
80
-        two)    [ -n "$tensop" ] && echo twen || echo $numeral;;
80
+        two)    [ -n "$tensop" ] && echo twen || echo "$numeral";;
81 81
         three)  echo thir;;
82
-        four)   [ -n "$tensop" ] && echo 'for' || echo $numeral;;
82
+        four)   [ -n "$tensop" ] && echo 'for' || echo "$numeral";;
83 83
         five)   echo fif;;
84
-        eight)  [ -n "$tensop" ] && echo eigh || echo $numeral;;
85
-        *)      echo $numeral;;
84
+        eight)  [ -n "$tensop" ] && echo eigh || echo "$numeral";;
85
+        *)      echo "$numeral" ;;
86 86
     esac
87 87
 }
88 88
 
@@ -97,7 +97,7 @@ uncrunchprefix() {
97 97
         'for')  echo four;;
98 98
         fif)    echo five;;
99 99
         eigh)   echo eight;;
100
-        *)      echo $prefix;;
100
+        *)      echo "$prefix";;
101 101
     esac
102 102
 }
103 103
 
@@ -112,14 +112,14 @@ grammar() {
112 112
         case "$line" in
113 113
             *"one of those bottles"*)   line="$(
114 114
                                             [ $oneBottle = true ] \
115
-                                             && echo ${line/one of those bottles/that lone bottle} \
116
-                                             || echo $line
115
+                                             && echo "${line/one of those bottles/that lone bottle}" \
116
+                                             || echo "$line"
117 117
                                         )"
118 118
                                         ;;
119 119
             *"one down"*)               line="$(
120 120
                                             [ $oneBottle = true ] \
121
-                                             && echo ${line/one down/it down} \
122
-                                             || echo $line
121
+                                             && echo "${line/one down/it down}" \
122
+                                             || echo "$line"
123 123
                                         )"
124 124
                                         ;;
125 125
             *bottles*)                  oneBottle=false;;
@@ -127,7 +127,7 @@ grammar() {
127 127
         esac
128 128
         #Some say the twenties should have no hyphen
129 129
         line="${line/twenty-/twenty }"
130
-        echo $line
130
+        echo "$line"
131 131
     done
132 132
 }
133 133
 
@@ -137,8 +137,8 @@ capitalize() {
137 137
     #
138 138
     local line      # every line
139 139
     while read line; do
140
-        echo -n ${line:0:1} | tr '[:lower:]' '[:upper:]'
141
-        echo ${line#?}
140
+        echo -n "${line:0:1}" | tr '[:lower:]' '[:upper:]'
141
+        echo "${line#?}"
142 142
     done
143 143
 }
144 144
 
@@ -149,9 +149,9 @@ punctuate() {
149 149
     local line      # every line
150 150
     while read line; do
151 151
         case "${line}" in
152
-            [Ii]f*)     echo ${line},;;
152
+            [Ii]f*)     echo "${line},";;
153 153
             '')         echo;;
154
-            *)          echo ${line}.;;
154
+            *)          echo "${line}.";;
155 155
         esac
156 156
     done
157 157
 }
@@ -161,16 +161,16 @@ verse() {
161 161
     # Write one verse with number $1
162 162
     #
163 163
     local nb=$1     # numeral
164
-    echo $nb bottles of beer on the wall
165
-    echo $nb bottles of beer
166
-    if [ $nb = zero ]; then
167
-        echo Go to the store and buy some more
164
+    echo "$nb bottles of beer on the wall"
165
+    echo "$nb bottles of beer"
166
+    if [ "$nb" = zero ]; then
167
+        echo "Go to the store and buy some more"
168 168
         nb=ninety-nine
169 169
     else
170
-        echo $breakLine
171
-        nb=$(pred $nb)
170
+        echo "$breakLine"
171
+        nb=$(pred "$nb")
172 172
     fi
173
-    echo $nb bottles of beer on the wall
173
+    echo "$nb bottles of beer on the wall"
174 174
 }
175 175
 
176 176
 poeticize() {
@@ -184,13 +184,13 @@ poeticize() {
184 184
         case "$rest" in
185 185
             *beer*)
186 186
                 first=${first/zero/no}
187
-                syl=$(syllables ${first% *})
187
+                syl=$(syllables "${first% *}")
188 188
                 case $syl in  #improve meter
189
-                    1|2)    echo $first 'more' $rest;;
190
-                    *)      echo $first $rest;;
189
+                    1|2)    echo "$first more $rest";;
190
+                    *)      echo "$first $rest" ;;
191 191
                 esac
192 192
                 ;;
193
-            *)  echo $first $rest
193
+            *)  echo "$first $rest"
194 194
         esac
195 195
     done
196 196
 }
@@ -210,7 +210,7 @@ syllables() {
210 210
     case $word in
211 211
         *seven*)    let $((n = n+1));;
212 212
     esac
213
-    echo $n
213
+    echo "$n"
214 214
 }
215 215
 
216 216
 main() {
@@ -222,14 +222,14 @@ main() {
222 222
     wastefulBreakLine="If one of those bottles should happen to fall"
223 223
     breakLine=$(
224 224
         [ "$1" = --careless ] \
225
-         && echo $wastefulBreakLine \
226
-         || echo $standardBreakLine
225
+         && echo "$wastefulBreakLine" \
226
+         || echo "$standardBreakLine"
227 227
     )
228 228
     nb=ninety-nine
229 229
     while [ -n "$nb" ]; do
230
-        verse $nb
230
+        verse "$nb"
231 231
         echo
232
-        nb=$(pred $nb)
232
+        nb=$(pred "$nb")
233 233
     done | poeticize | grammar | punctuate | capitalize
234 234
 }
235 235