Array em bash script [RESOLVIDO]

1. Array em bash script [RESOLVIDO]

Douglas Nantes Gualberto
douglas.nantes

(usa Ubuntu)

Enviado em 25/08/2011 - 09:30h

Olá pessoal.
Estou criando um script e preciso manipular um vetor da forma que segue abaixo.

tenho o seguinte vetor
MES=("janeiro" "fevereiro" "marco" "abril" "maio" "junho" "julho" "agosto" "setembro" "outubro" "novembro" "dezembro")

crio uma variável com o numero que representa o mês corrente faço a atribuição do valor usando a função date conforme o comando abaixo
MOUNTH=`date +%m`

Daí eu quero pegar o nome do mês corrente da forma abaixo
echo ${MES[$MOUNTH]}

se eu executo o script aparece o seguinte erro
./xxxxx.sh: linha xx: 08: valor muito grande para esta base de numeração (token com erro é "08")

Como eu faço para manipular a variável MOUNTH para que ela receba o valor 8 e não o valor 08

Ahh eu não sei se existe uma máscara a ser passada na função date para obter o nome do mês, de qualquer forma se existir está máscara não me ajudará porque eu posso querer mudar o vetor: MES=("azul" "preto" "branco" "amarelo" "vermelho" "verde" "marron" "cinza" "laranja" "roxo" "rosa" "bege") Tive que pesquisar pra descobrir cores kkkkkkkkkkkkkkkkk
Ahh num vai pensar que eu to ficando louco, as cores são só uma suposição.

Alguém tem alguma ideia do que eu posso fazer?



  


2. Re: Array em bash script [RESOLVIDO]

Douglas Nantes Gualberto
douglas.nantes

(usa Ubuntu)

Enviado em 25/08/2011 - 10:09h

Encontrei a solução :P

MES=("janeiro" "fevereiro" "marco" "abril" "maio" "junho" "julho" "agosto" "setembro" "outubro" "novembro" "dezembro")

MOUNTH=`date +%m`
MOUNTH=`expr $MOUNTH - 1`
echo ${MES[${MOUNTH}]}

##################
:~$ agosto

Vlw


3. Re: Array em bash script [RESOLVIDO]

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 25/08/2011 - 10:10h

\OO/ps Posso começar pela criação do vetor via função ?

Criar uma função, exemplo _nome_mes. Dentro da função descreva o array.
Esta função vai aguardar um parâmetro obrigatório.
Recebe um "número em tese" que deve representar o mês.
A função não deve saber, ela só sabe que recebe um número e retornará uma string.

function _nome_mes(){

# Recebe o nome dos meses.
MES[00]="meses"
MES[01]="janeiro"
MES[02]="fevereiro"
MES[03]="marco"
MES[04]="abril"
MES[05]="bla,bla,bla"
}

_nome_mes "$1"
echo "${MES[$1]}" #Deve retornar o nome do mês.

Se você já trata o array da forma normal com os meses irão se apresentar, não precisará fazer manobra alguma.
Veja se funciona, não testei.

Espero ter ajudado.

oops rsrs, vc já encontrou a solução. Eu tentei ;)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts