linux - shell script - while condition check range failing -


hello reading started shell scripting , test purposes i'm trying create scripts personal use. have home fileserver sync , , i'm trying create interactive script can make task of mp3 syncing easier.

here script :

#!/bin/bash ############################################## ############    mp3 sync script ############## ############################################## #### rev: 01 20/07/2015 #### author: marcio ribeiro  echo -e "sincronizar storage para o note ( escolha 01 ) ou note para storage ( escolha 02 ): \n 01 destino final note: \n 02 destino final storage:" read  destino destino_ck=[0]-[12]      while [ $destino != $destino_ck ] ;      read -p "por favor escolha entre 01 ou 02:" destino done  echo -e "digite letra inicial da banda que deseja utilizar na sincronização em caps" read  letra letrack={az}      while [ "$letra" != $letrack ];      read -p "digite letra inicial da banda que deseja utilizar na sincronização em cap:" letra done  left="/storage/marcio/mp3/${letra}/" right="/data/mp3/${letra}/"  if [ $destino = "01" ];     echo -e "`rsync -rvz ${left} ${right}`; \n `ls -lha ${right}`" else     echo -e "`rsync -rvz ${right} ${left}`; \n `ls -lha ${left}`"    fi 

i got basics working i'm trying limit user interaction want i'm failing. on first user prompt want accept 01 or 02 input , on second user prompt capital single letter. have clue why i'm failing on simple? please bare me i'm starting script ... !

i got working, it's not pretty code or best logic works :

!/bin/bash ############################################## ############    mp3 sync script ############## ############################################## #### rev: 01 20/07/2015 #### author: marcio ribeiro  echo -e "sincronizar storage para o note ( escolha 1 ) ou note para storage ( escolha 2 ): \n 1: destino final note \n 2: destino final storage" read  destino             until [ "$destino" = "1" ] || [ "$destino" = "2" ];             read -p "por favor escolha entre 1 ou 2:" destino done #### echo -e "digite letra inicial da banda que deseja utilizar na sincronização em caps" read  letra letra_ck='[a-z]'              while [[ "$letra" != $letra_ck ]];             read -p "digite letra inicial da banda que deseja utilizar na sincronização em caps:" letra done #### left="/storage/marcio/mp3/${letra}/" right="/data/mp3/${letra}/"      if [ $destino = "01" ];             echo -e "`rsync -rvz ${left} ${right}`; \n `ls -lha ${right}`" else             echo -e "`rsync -rvz ${right} ${left}`; \n `ls -lha ${left}`"  fi 

any ideas improvement welcome.


Comments