Bash scripting- reverter uma string

1

Eu estou tentando criar um script que irá obter uma palavra (min 3 chars, max 10 chars) como sua entrada e então inverterá a posição dos caracteres.

A questão é como combinar operações para as instruções if para obter este script funcionando.

#!/bin/bash
clear
ok=3
echo *****REVERSE*****
while [ $ok = 3 ]
do
echo "Enter a character: " 
read id
   if [ ${#id} -eq 3 ]
   then 
   echo  $id | rev
   elif [ ${#id} -eq 4 ]
   then 
   echo  $id | rev
   elif [ ${#id} -eq 5 ]
   then
   echo  $id | rev
   else
   echo Minimum character is 3 and Maximum is 5!Logging out..
   ok=4
  fi
done
    
por trixie101 07.08.2017 / 18:37

1 resposta

5

Em vez de usar uma if..elif..elif ladder, faça apenas um teste para o tamanho máximo e mínimo:

#!/bin/bash
read -p 'Enter a word :' word
if [[ ${#word} -le 2 ]] || [[ ${#word} -ge 11 ]]; then
   echo "Word is too short or long."
else
   rev < <(echo ${word})
fi
    
por 07.08.2017 / 18:48