Probleminha em um algoritmo! Terminal Linux, Nano! [RESOLVIDO]

1. Probleminha em um algoritmo! Terminal Linux, Nano! [RESOLVIDO]

Diego Vinicius F de Souza Alves
DiViniciusF

(usa Linux Mint)

Enviado em 02/11/2016 - 22:28h

Pessoal, estou com um problema para a resolução do problema abaixo, contem todas as especificações:

Exercício 4 - juntatudo.sh
Mostra na tela "grudados" todos os parâmetros recebidos na linha de comando,
como uma única palavra.

nano juntatudo.sh – Cria o arquivo

#!/bin/bash
echo –n “Escreva uma palavra ou sair para sair: “
read a
while [ “$b” != “sair” ];
do
b=$a$b
echo –n “Escreva outra palavra ou sair para sair: “
read b
done
echo “$b”

sh juntatudo.sh


Nesse exercício, é necessário obter palavras do usuário até que ele digite fim para finalizar o programa! E quando ele digitar fim, deveria aparecer todas as palavras que ele digitou e junta-las, exemplos:
Ele digitou: Diego Vinicius F
O que aparece: sair
Deveria aparecer: DiegoViniciusF
Ele digitou com espaço e a resposta precisa ser sem espaço!
Mas o programa que criei, quando o usuário escreve sair, ele imprime sair e sai do programa, não mostra as palavras digitas!

Utilizei o terminal Linux para executar essa tarefa!



  


2. MELHOR RESPOSTA

Paulo Jr
Pebis

(usa Debian)

Enviado em 02/11/2016 - 23:48h


#!/bin/bash
echo -n Escreva uma palavra ou sair para sair:

read b
while [ “$b” != “sair” ];
do
#b=$a$b
a=$a$b
echo -n Escreva outra palavra ou sair para sair:
read b
done
echo $a


3. Re: Probleminha em um algoritmo! Terminal Linux, Nano!

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 02/11/2016 - 23:29h

DiViniciusF escreveu:

Pessoal, estou com um problema para a resolução do problema abaixo, contem todas as especificações:

Exercício 4 - juntatudo.sh
Mostra na tela "grudados" todos os parâmetros recebidos na linha de comando,
como uma única palavra.

nano juntatudo.sh – Cria o arquivo

#!/bin/bash
echo –n “Escreva uma palavra ou sair para sair: “
read a
while [ “$b” != “sair” ];
do
b=$a$b
echo –n “Escreva outra palavra ou sair para sair: “
read b
done
echo “$b”

sh juntatudo.sh


Nesse exercício, é necessário obter palavras do usuário até que ele digite fim para finalizar o programa! E quando ele digitar fim, deveria aparecer todas as palavras que ele digitou e junta-las, exemplos:
Ele digitou: Diego Vinicius F
O que aparece: sair
Deveria aparecer: DiegoViniciusF
Ele digitou com espaço e a resposta precisa ser sem espaço!
Mas o programa que criei, quando o usuário escreve sair, ele imprime sair e sai do programa, não mostra as palavras digitas!

Utilizei o terminal Linux para executar essa tarefa!


Boa noite Vinicius.
Verifique se é isso que deseja:
#!/bin/bash
W="#"
READ() { read -p "Escreva uma palavra ou sair para sair: " W ; }

while [ $W != sair ];do
READ
X+=$W""
done
sed 's/sair\|[ ]//g' <<< "$X"


Se a RESPOSTA esclareceu a sua dúvida, marque o tópico como resolvido e a RESPOSTA como A MELHOR . . . :)

Att.:
Marcelo Oliver





4. Re: Probleminha em um algoritmo! Terminal Linux, Nano! [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 02/11/2016 - 23:31h

Você precisa usar array.

#!/bin/bash

palavra=""
vetor=()
cont=0

while [ "$palavra" != "sair" ]
do
vetor[$cont]="$palavra"
read "Digite alguma palavra:" palavra
let cont++
# ou cont=$((cont+1))
# ou cont=`expr cont + 1`
done

echo ${vetor[@]}

# ou
# for i in ${vetor[@]}
# do
# echo -n "$i "
# done

# tem outros modos mas depende do que
# seu professor quer como limitacao.


----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



5. REPOSTA CORRETA!

Diego Vinicius F de Souza Alves
DiViniciusF

(usa Linux Mint)

Enviado em 03/11/2016 - 14:38h

nano juntatudo.sh

#!/bin/bash
echo -n "Escreva uma palavra: "
read a;
while [ "$a" != "sair" ];
do
b=$b$a
echo -n "Escreva outra palavra ou sair para sair: "
read a;
done
echo $b

sh juntatudo.sh






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts