como "dizer" ao script quando é dia de semana ou final de semana? [RESOLVIDO]

1. como "dizer" ao script quando é dia de semana ou final de semana? [RESOLVIDO]

Luiz Carlos
luizcarlos18rj

(usa Suse)

Enviado em 26/03/2015 - 14:14h

Boa tarde galera...

Queria criar uma condicional simples num script, mas tenho dúvida porque não sei comparar uma variável com 2 valores ao mesmo tempo. ( maior ou igual a x ou menor que y )

Eu queria que meu script de backup fizesse a gravação em fita utilizando uma fita por dia de segunda a quinta, mas quando fosse sexta-feira que seria quando eu não estivesse lá para "trocar a fita" manualmente que ele gravasse o backup de sexta, sábado e domingo na mesma fita sem sobrescrever ( agendado no cron).

Queria algo do tipo:


DATA=`date +%w`
backup(){
if [ $DATA >=5 or <1 ]; then # se o retorno do dia da semana for sexta, sábado ou domingo faça:
tar -cvf /dev/nst0 /home/meus_arquivos #usa nst0 ( no rewind )
else
tar -cvf /dev/st0 /home/meus_arquivos #usa st0 ( autorewind )
fi
}
#
backup


Minha dúvida é que não sei como usar a linha condicional tipo:

a) if [ $DATA >=5 or <1 ]

b) if [ $DATA >=5 or $DATA <1 ]

c) if [ $DATA -ge 5 or $DATA -lt 1 ]

d) if [ $DATA >=5 || <1 ] # "||" = or

Tudo tá dando erro aqui...

Sendo assim, alguém tem uma forma melhor de informar o script quando é dia de semana e quando é final de semana?


  


2. MELHOR RESPOSTA

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 26/03/2015 - 15:16h

Amigo tente assim :


DATA=`date +%w`
backup(){
if [ $DATA -ge 5 ] || [ $DATA -lt 1 ]; then # se o retorno do dia da semana for sexta, sábado ou domingo faça:
tar -cvf /dev/nst0 /home/meus_arquivos #usa nst0 ( no rewind )
else
tar -cvf /dev/st0 /home/meus_arquivos #usa st0 ( autorewind )
fi
}
# Use Código Indentado , facilita muito a vida de quem le o mesmo
backup


Espero ter ajudado

[]'s

T+

3. Re: como "dizer" ao script quando é dia de semana ou final de semana? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 26/03/2015 - 14:50h

Em Shell Script, a comparação de valores é feita de forma diferenciada, veja:

#!/bin/bash

a=5
b=4

if ((a >= b)); then
echo "a é maior ou igual a b"
elif ((a < b && b >= 0)); then
echo "a é menor que b e b é maior ou igual a zero"
elif ((a == b || ((a != 0 && b != 0)) )); then
echo "a é igual a b ou a é diferente de zero e b diferente de zero."
fi


Para comparação de strings, você pode usar os colchetes;

#!/bin/bash

str="ab"
rts="ba"

if [[ "$str" == "$rts" ]]; then
echo "str é igual a rts"
elif [[ "$str" != "rts" && "$rts" == "ba" ]]; then
echo "rts é igual a ba"
fi

----------------------------------------------------------------------------------
Uma vida não questionada não merece ser vivida - Platão


4. Muito obrigado pela ajuda

Luiz Carlos
luizcarlos18rj

(usa Suse)

Enviado em 31/03/2015 - 10:22h

Era Justamente o que estava precisando...

O usuário "Thihup " me esclareceu logo a minha dúvida e funcionou dessa forma eu agradeço, não sei o porque mas tem uma negativação no seu comentário, não sei se alguém achou inconveniente, ou se foi engano ao clicar para "positivar", mas de qualquer forma saiba que era justamente o que precisava.

O usuário "ru4n" me ensinou e me fez pensar como entender a sintaxe no linux / shell script, por isso agradeço, pois não erro mais agora, vejo que tem 2 tipos de usuários: os que dão a resposta "mastigada" que faz a alegrias de muitos que estao em desespero, precisando de uma solução rápida para um problema urgente, e tambem tem os usuários que não respondem diretamente o que vc queria, mas te dão "o caminho das pedras" ´para a solução, embora sofram o fardo de postergar a solução gerando mais faxina pra alguém que já tá no desespero ( tipo aqueles que além de não darem resposta alguma, dizem: - leia o manual , que deixa a gente P. da vida, kkkk) , mas são os que mais nos fazem crescer pois a gente aprende a caminhar com as próprias pernas .

Por isso agradeço a todos.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts