The UNIX and Linux Forums  
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Desenvolvimento Release: Linux Mint 4,0 Beta "Fluxbox", 4.0 Alpha "Debian" iBot UNIX e Linux RSS Notícias 0 01-04-2008 03:00
Explique a linha "mn_code \u003d` env | grep ".. mn" | awk-F "\u003d" '(print $ 2)' `" Lokesha UNIX para Dummies Perguntas & Respostas 4 12-20-2007 01:52
Como eu poderia fazer um programa misturado com muitos "|", "<" e ">" strugglingman Alto Nível de programação 2 04-29-2006 08:11
Não utpmx entrada: você deve executar "login" de nível mais baixo "shell" peterpan UNIX para Dummies Perguntas & Respostas 0 01-18-2006 04:15
como solicitar uma "leitura" ou "entregue" recepção de correio electrónico plelie2 Programação Shell Script e 1 08-06-2002 03:26

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 01-25-2008
cml2008 cml2008 is offline
Usuário
  
 

Join Date: Jan 2008
Lugares: 12
necessidade de manter o "0" no "01"

Sistema \u003d AIX
script \u003d ksh
\u003d bastante novo para mim isso.

Espero que este não tenha sido solicitado já.

Cenário:
grep'ing de informações para fora de arquivos com uma convenção de nomenclatura como tal ....
2008_01 *. Eu serei o meu desempenho grep sobre estes nomes durante o mês depois (ou seja, 02).

Problema:
Quando tento subtrair "02" - "01", traz "1". Isto faz sentido vendo como fazer mais cálculos largar o anterior "0"
Preciso manter o "0" para realizar o meu grep.

Código:
# \u003d\u003d\u003d\u003d\u003d\u003d> & GET ANO MÊS ***
# export ANO \u003d `date +% Y`
# export MNTH \u003d `date +% m`
exportação ANO \u003d 2008
exportação MNTH \u003d 02

# **************************************
# *** Localizar anterior Mês / Ano VALOR ***
# **************************************
if [$ MNTH! \u003d 01]
então
((MNTH \u003d $ MNTH-01))
ANO \u003d $ ANO
diferente
if [$ MNTH \u003d 01]
então
MNTH \u003d 12
((ANO \u003d $ ano-1))
fi
fi

*** NOTA ~ ((ANO \u003d $ ano-1)) funciona perfeitamente.
!!!!! A declaração acima está incorreta !!!!!

Eu preferia mantê-la tão simples como é agora, no entanto todos os help is appreciated. Eu consideraria utilizar sed ou awk para adicionar o "0" no, no entanto uma ou duas exemplo de como fazer isso seria ótimo.

Última edição por cml2008; em 01/26/2008 12:15.. Motivo: declaração está incorreta
  #2 (permalink)  
Old 01-25-2008
jim McNAMARA jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Localização: NM
Mensagens: 5.720
adicionar uma linha
Código:
MNTH=$(printf "%02d" $MNTH)
  #3 (permalink)  
Old 01-25-2008
cml2008 cml2008 is offline
Usuário
  
 

Join Date: Jan 2008
Lugares: 12
Jim,

Excelente, que funcionou!

Estou a ver que vou ter que levar algum tempo para decifrar todos os parâmetros de printf nas páginas man!

Dito isto, talvez você possa me ajudar a saber mais tarde com a metade do "if".

if [$ MNTH! \u003d 01]
então
((MNTH \u003d $ MNTH-01))
MNTH \u003d $ (printf "% 02d" $ MNTH)
ANO \u003d $ ANO
diferente
if [$ MNTH \u003d 01]
então
MNTH \u003d 12
((ANO \u003d $ ano-1))


em vermelho agora imprime como tais 00/2009


mais uma vez que é muito bacana sobre o printf, obrigado por ajudar.
  #4 (permalink)  
Old 01-25-2008
KevinADC KevinADC is offline Forum Advisor  
Usuário
  
 

Join Date: Jan 2008
Lugares: 731
apenas adivinhando, mas você precisa usar "\u003d\u003d" quando se comparam, em vez de "\u003d"? A maioria dos scripts são os mesmos, a este respeito "\u003d" é de atribuição de valores, "\u003d\u003d" é para comparar valores.
  #5 (permalink)  
Old 01-26-2008
cml2008 cml2008 is offline
Usuário
  
 

Join Date: Jan 2008
Lugares: 12
KevinADC,

Eu olhei para a sua sugestão e acrescentar a extra "\u003d", porém, se não fazer a diferença na comparação do "valor".

Creio que isto acontece porque a comparação dentro de [].
  #6 (permalink)  
Old 01-26-2008
cml2008 cml2008 is offline
Usuário
  
 

Join Date: Jan 2008
Lugares: 12
Minha teoria é que o "printf" comando é superior ao segundo "if".
Eu tentei ler o homem através de páginas em printf, no entanto, que parece ser um pouco complicada, alguém sabe se o "printf" comando superior é o meu segundo "if"? Se assim o que eu tenho que colocar em outro "printf" comando para formatar a variável "$ MNTH" to \u003d 12?
Citação:
if [$ MNTH! \u003d 01]
então
((MNTH \u003d $ MNTH-01))
MNTH \u003d $ (printf "% 02d" $ MNTH)
ANO \u003d $ ANO
diferente
if [$ MNTH \u003d 01]
então
MNTH \u003d 12
((ANO \u003d $ ano-1))

em vermelho agora imprime como tais 00/2009

Última edição por cml2008; em 01/26/2008 11:42.. Motivo: erros gramaticais
Closed Thread

Marcadores

Tags
linux

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 04:07.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0