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

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

Iago Lira
iagolira

(usa Debian)

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!


  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

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.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts