Pular para o conteúdo

convenção de saída numérica [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. convenção de saída numérica [RESOLVIDO]

Enviado em 09/01/2015 - 17:16h

Olá pessoal!
Hoje estou com uma dúvida e gostaria da ajuda de vocês.
A dúvida é a seguinte:


#Exemplo1:
#!/bin/bash

read -p 'Digite um número:' num
echo $num
Só que gostaria de pedir um número(como do exemplo), só que queria separar os número, como segue

Exemplo2:

$Digite um numero: 11
$saida: a1=1 e a2=1

Exemplo3:

$Digite um numero: 113
$saida: a1=1, a2=1 e a3=3
Tipo armazenar num vetor!
Se alguém poder me ajudar ficarei muito grato!

Responder tópico

2. Re: convenção de saída numérica [RESOLVIDO]

Melhor resposta

Enviado em 09/01/2015 - 18:35h

Olá pessoal!
Hoje estou com uma dúvida e gostaria da ajuda de vocês.
A dúvida é a seguinte:


#Exemplo1:
#!/bin/bash

read -p 'Digite um número:' num
echo $num
Só que gostaria de pedir um número(como do exemplo), só que queria separar os número, como segue

Exemplo2:

$Digite um numero: 11
$saida: a1=1 e a2=1

Exemplo3:

$Digite um numero: 113
$saida: a1=1, a2=1 e a3=3
Tipo armazenar num vetor!
Se alguém poder me ajudar ficarei muito grato!

No caso você está usando bash e as expansões de parâmetros permitem que você acesse cada caractere dentro da variável de forma independente, na página de manual, o exemplo é:

${parameter:offset:length} 
Só que para iterar por esses caracteres precisamos do comprimento da string:

${#parameter} 
Pronto, não falta mais nada :P, veja um exemplo:

for (( i = 0; i <= ${#parameter}; i++ )); do
caractere=${parameter:$i:1}
echo "A posicao '$i' da variavel \$parameter contem o caractere '$caractere'"
done
Essa sintaxe funciona no bash, ksh e zsh.

É possível também fazer umas "gambis":

array=( $(sed 's/\B/\n/g' <<< '0123456789') )
set| grep '^array\b'
array=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="5" [6]="6" [7]="7" [8]="8" [9]="9")
array=( $(awk -F '' '{OFS="\n";$1=$1;print}' <<< '1234567890') )
set| grep '^array\b'
array=([0]="1" [1]="2" [2]="3" [3]="4" [4]="5" [5]="6" [6]="7" [7]="8" [8]="9" [9]="0")
entre outros ...

Daí você precisa apenas ver como proceder com a formatação para a saída do seu script.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder