Como capturar apenas DIA de dialog --calendar [RESOLVIDO]

1. Como capturar apenas DIA de dialog --calendar [RESOLVIDO]

Luiz Carlos
luizcarlos18rj

(usa Suse)

Enviado em 25/11/2013 - 15:03h

Ajuda com dialog --calendar

Oi galera uma pergunta:

quando eu quero capturar apenas o campo "dia" da variável date eu faço assim:

date + "%d"

mas agora eu to usando o recurso de calendário na seguinte sintaxe:

diaescolhido=$(dialog --stdout --calendar " Escolha uma data" 0 0)
echo diaescolhido

digamos que o usuário escolha 26-11-2013 o echo aparece

~$:26/11/13

Como faço para exibir apenas o DIA ficando

~$: 26

O parametro %d não funciona aqui.


  


2. MELHOR RESPOSTA

Sandro Marcell
smarcell

(usa Slackware)

Enviado em 25/11/2013 - 18:17h

Use a opção --date-format do dialog!

dialog --stdout --date-format "%d" --calendar " Escolha uma data" 0 0 




3. Obrigado smarcel

Luiz Carlos
luizcarlos18rj

(usa Suse)

Enviado em 25/11/2013 - 19:32h

Po valew mesmo parceiro... passei o dia todo pesquisando isso na net, mas tudo o que encontrava sobre dialog não mencionava que tinha essa opção, testei aqui e deu certinho... fiz um curso de linux a pouco tempo e to tentando criar meu primeiro script funcional para aplicar no trabalho e espero poder contar com a ajuda de vc e da galera expert pq mesmo estudando, to cheio de dúvidas.

Obrigado mesmo e um grande abraço..


4. Atualização # dica

Luiz Carlos
luizcarlos18rj

(usa Suse)

Enviado em 26/11/2013 - 17:24h

Fala galera...

Após a excelente dica do smarcell aconteceu a seguinte situação comigo:

Apliquei a solução (do smarcell):

dialog --stdout --date-format "%d" --calendar " Escolha uma data" 0 0 e o resultado saiu direito, por exemplo ao imputar uma data qualquer tipo "27/11/2013" a saída era "27" e era exatamente isso o que eu queria.

O intrigante é que executei esse script no meu de casa o qual uso a distriuição: Ubuntu 13.10 (Saucy Salamander) e rodou certinho, porém quando tentei utilizar o parâmetro "--date-format" do comando dialog no trabalho onde uso o SUSE LINUX ENTERPRISE SERVER 11 SP2 (SLES) apontou o seguinte erro:

Error: Unknown option --data-format.
Use --help to list options.

De modo que ao listar o help, realmente no SLES 11 não tinha esse parâmetro, não sei se a versão do dialog no suse é inferior ou diferente do ubuntu.

Fiquei chateado, pois achava que tinha resolvido o meu problema e partir pra pesquisa e após muito tempo verifiquei uma segunda solução que deu certo no SUSE e ela é:

------------------------------------------------------------------
diaescolhido=$(dialog --stdout --calendar " Escolha uma data" 0 0)
dia="`echo $diaescolhido | cut -c1-2`"
echo $dia
------------------------------------------------------------------

Como resultado também para a data "27/11/2013" a saída era "27" e eu fiquei muito feliz, não sabia que a opção -c do comando cut isolava caracteres da expressõ e que 1-2 era pegar os caracteres do intervalo ( primeiro caractere até o segundo) tirado o "27" do 27/11/2013, e aprendi isso agora.

Portanto fica a dica pra todos, é uma segunda solução se alguém conhecer mais, por favor acrescente.

Um abraço a todos...







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts