Pular para o conteúdo

Inverte String [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Inverte String [RESOLVIDO]

Enviado em 17/01/2012 - 11:40h

Estou a fazer um script que inverte uma string digitada pelo usuário, o problema é que não sei como usar 2 comandos de uma vez, segue o script

O que pode estar errado?

#!/bin/bash
echo Digite a URL
read string
length=`expr length $string`

for ((i=1; i<$lenght+1; i++))
do
n$i=`echo $string | cut -b $i`

done

for ((a=$length; a>=1; a--))
do
echo -n $n$a
done
echo " "

Responder tópico

2. Re: Inverte String [RESOLVIDO]

Enviado em 17/01/2012 - 11:47h

Por quê não usar um simples:

$ echo string | rev
gnirts

3. Re: Inverte String [RESOLVIDO]

Enviado em 17/01/2012 - 11:48h

Se vc quer apenas inverter o que foi digitado pode usar o 'rev':

$ cat arquivo.txt
1234567890

$ rev arquivo.txt
0987654321

$ echo linux | rev
xunil



4. Re: Inverte String [RESOLVIDO]

Enviado em 17/01/2012 - 11:49h

Os dois comandos seriam dentro do scrip ou na execução?


$chmod +x script.sh; ./script.sh


Pelo que eu entendi da pergunta, seria isso.

O primeiro seta a permissão de execução e no segundo executa o shellscript.

5. Re: Inverte String [RESOLVIDO]

Enviado em 17/01/2012 - 12:19h

Funcionou certinho com o rev
Agora se eu quisesse fazer isso sem usar o rev, seguindo a minha linha de código, como que eu poderia prosseguir?

6. Re: Inverte String [RESOLVIDO]

Enviado em 18/01/2012 - 08:03h

.

7. Re: Inverte String [RESOLVIDO]

Enviado em 18/01/2012 - 14:32h

Usando somente comandos 'built-in' do bash, você pode tentar assim:


#!/bin/bash

string="$1"
tamanho=${#string}
invertida=""

for (( i = tamanho; i > 0; i-- ))
do
invertida=${invertida}${string:$i-1:$i}
string=${string%${string:$i-1:$i}}
done

echo $invertida

8. Re: Inverte String [RESOLVIDO]

Enviado em 20/01/2012 - 08:05h

Funcionou!

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder