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.