Este breve artigo ilustra o uso de estruturas condicionais em Shell Script, visando definir automaticamente o papel de parede do ambiente gráfico em função do horário no qual o computador é ligado. Testado apenas com o Fluxbox em Debian Sarge.
Como professor de cursos superiores relacionados à Computação h
á vários anos, em diferentes disciplinas, sempre procurei mostrar aos alunos exemplos que ilustravam claramente as estruturas envolvidas em cada aula.
As estruturas de controle são decisivas em vários casos, onde deve prevalecer a lógica do aluno, deixando a implementação a um plano ligeiramente inferior.
Para ilustrar estruturas de controle de fluxo em Shell Script - poderia ser em qualquer outra linguagem que tenha acesso a comandos do sistema - sugiro um script que define, automaticamente, o papel de parede em função do horário no qual o computador foi ligado.
Estrutura de controle envolvida
A idéia de utilizar uma estrutura de controle baseia-se nos seguintes objetivos:
familiarizar o aluno com a lógica de funcionamento de comandos [if] aninhados;
definir um modo prático de extrair dados a partir da resposta de um comando;
aplicar a lógica da estrutura de controle a um exemplo real;
incluir o script na inicialização do sistema operacional.
A estrutura de comandos [if] aninhados pode ser vista, de modo geral, como ilustrado abaixo:
if <teste lógico 1>
then
<executa comando 1>
elif <teste lógico 2>
then
<executa comando 2>
else
<executa comando 3>
O ponto crucial deste, digamos, exercício, é definir a lógica para posicionar a hora da inicialização do computador em um dos três comandos, considerando o uso de três papéis de paredes diferentes: um durante a madrugada; outro durante o horário comercial e, finalmente, um para uso noturno até a meia-noite.
Diversas modificações são possíveis e implementáveis, como utilizar o cron para mudar automaticamente em função do horário de uso, mas o exercício tem um objetivo claro e definido.
[1] Comentário enviado por removido em 25/04/2006 - 11:00h
Interessante para aprendizagem da estrutura de controle, mas sinceramente não vejo uma utilização prática, já que ele só altera na inicialização. Seria interessante, talvez, demonstrar como colocar isso no crontab, em horas determinadas.
[3] Comentário enviado por jhgb em 25/04/2006 - 14:22h
Olá fdettoni.
Embora o objetivo do artigo originalmente não seja esse, e a inserção disso no cron é uma das implementações possíveis, podemos alterar o cron do sistema. Logado como usuário comum, faça:
# inicia a alteração no crontab. O editor que abrirá depende de cada instalação...
crontab -e
# roda o script wallpaper a cada hora cheia
0 * * * * /usr/local/wallpaper
Salve e saia.
Isso força a checagem do horário, e eventual alteração do wallpaper, de hora em hora.
[5] Comentário enviado por removido em 25/04/2006 - 18:10h
Ótimo artigo. Posso dar uma sugestão?
Uma coisa legal seria ter um arquivo de configuração com uma lista de wallpapers que eu quero randomizar, ou até mesmo um par de wallpaper/hora:
[6] Comentário enviado por sirelven em 25/04/2006 - 21:24h
Rafael
No KDE já tem essa opção, vá na configuração de wallpapers (clique com o botão direito no desktop, vá em propriedades), selecione multiplos, adicione as fotos que você quer e lá mesmo tem um campo para definir troca automática, e em quais intervalos, além de exibir sequencialmente ou randomicamente.
Estou num xispita agora, dai não tenho a sequencia exata de comandos, caso se interesse depois lhe envio corretamente.
O artigo é interessante como demonstração de conceitos e em casos em que o ambiente desktop não faz isso sozinho, como é o caso em gerenciadores de janelas simples.
[10] Comentário enviado por cyberemb em 08/06/2007 - 08:29h
Boa dica, Sera que alguem sabe se tem como eu colocar wall , nas estações? Tipo tem um servidor com firewall e proxy, e as outras maquinas todas com win, e qundo as maquinas logarem no server, ja abri com wallpaper que defini no servidor.