Browse Source

posix shell compatible

boyska 7 months ago
parent
commit
f429df01a6
1 changed files with 21 additions and 17 deletions
  1. 21 17
      banana.sh

+ 21 - 17
banana.sh

@@ -1,27 +1,31 @@
-#!/bin/bash 
+#!/bin/sh
 
 set -eu
 
-num=$1
-minlength=1
-
-
-alphabets=(bcdfglmnprstvz aeiou)
-numalpha=${#alphabets[@]}
-v=$num
-st=
+num="$1"
+minlength=2
+vowels='aeiou'
+consonantics='bcdfglmnprstvz'
+v="$num"
 length=0
+st=
 
-idx=$(((numalpha - 1) % numalpha))
-while ! { [ "$v" -eq 0 ] && [ $idx -eq $(((numalpha - 1) % numalpha)) ] && [ $length -ge $minlength ] ; }
+idx=1
+while [ "$v" -ne 0 ] || [ $idx -ne 1 ] || [ $length -lt $minlength ]
 do
-            al=${alphabets[idx]}
-            r=$((v % ${#al}))
-            v=$((v / ${#al}))
-            st="${al:$r:1}$st"
+    if [ "${idx}" -eq 1 ]; then
+        al="$vowels"
+        idx=0
+    else
+        al="$consonantics"
+        idx=1
+    fi
+    len="${#al}"
+    r=$((v % len + 1))
+    v=$((v / len))
+    st="$(echo "$al" | cut -c "$r")$st"
 
-            idx=$(((idx + numalpha - 1) % numalpha))
-            length=$((length + 1))
+    length=$((length + 1))
 done
 
 echo "$st"