Shell-Script

1. Shell-Script

Weidllan Djeizo Dos Santos
Weidllan

(usa Ubuntu)

Enviado em 13/12/2008 - 21:32h

Fiz um para usar depois que instalar o Ubuntu com algumas tarefas
E ficou assim:


#!/bin/bash
echo "Posso continuar? [sn] "
read RESPOSTA
test "$RESPOSTA" = "n" && exit

# Esse comando vai atualizar a lista de pacotes para os mais novos
echo "Atualizando Lista de Pacotes"
apt-get update

# Esse comando vai ser baixar, instalar e configurar varios pacotes
echo "Baixando, Instalando e Configurando Programas"
apt-get install rar amsn broffice.org wine k3b amarok

# Esse comando vai atualizar todo o sistema
echo "Atualizando Todo o Sistema"
apt-get upgrade

# Esse comandos vai reiniciar a maquina
echo "Reiniciando"
shutdown -r now



PERGUNTAS

1 - Qual é a diferenca de usar #!/bin/bash
e usar #!/bin/sh ?
2 - Posso usar apt-get no script?
4 - Um script pode fazer um tarefa administrativa?
3 - É preciso # antes do comando para o script fazer um tarefa?



AGRADEÇO DEIS DE JÁ PELA ATENÇÃO!


  


2. Re: Shell-Script

Denis Doria
thuck

(usa Debian)

Enviado em 13/12/2008 - 22:32h

>1 - Qual é a diferenca de usar #!/bin/bash e usar #!/bin/sh ?

Bash é um tipo de shell, e sh é outro tipo, embora a maioria das distros hoje cria um link simbólico para evitar problemas com compatibilidade, então scripts para bash sempre comece com #!/bim/bash


>2 - Posso usar apt-get no script?

Sim, pode sem problemas, mas terá que levar em consideração fatores que o apt-get cria, muitas vezes o processo tem que ser interativo, e não funcionará com scripts, principalmente quando no meio da instalação aparece algum dialog maldito.

>4 - Um script pode fazer um tarefa administrativa?

Sim, na realidade a maioria dos scripts são feitos para tarefas administrativas.

>3 - É preciso # antes do comando para o script fazer um tarefa?

Sim, e não. #! diz qual o interpretador para o código abaixo, ou seja, se vc garantir que de outra forma o interpretador correto irá chamar aquele arquivo então sem probs, se vc não tem como garantir (99,995% das vezes) melhor colocar para não obter comportamentos estranhos.


3. Dúvida

Weidllan Djeizo Dos Santos
Weidllan

(usa Ubuntu)

Enviado em 13/12/2008 - 22:59h

Mas colocando:

# Descrição
echo
"comando"

O Primeiro # não vale para o comando comentado na terceira linha não?!


4. Re: Shell-Script

Denis Doria
thuck

(usa Debian)

Enviado em 13/12/2008 - 23:13h

Bem, são coisas diferentes.

# indica um comentário

#! no começo do arquivo indica um interpretador


5. Então como?

Weidllan Djeizo Dos Santos
Weidllan

(usa Ubuntu)

Enviado em 14/12/2008 - 21:19h

Como devo proceder para que meu script seja bem escrito e não mim traga transtornos na hora que eu precisa-ló?


6. Re: Shell-Script

Denis Doria
thuck

(usa Debian)

Enviado em 14/12/2008 - 22:54h

Bem, para começar escreva pensando que alguém vai alterar no futuro. Tente escrever scripts pensando que eles são programas, evite o "ah, só vou usar uma vez"; há sistemas inteiros que são usados durante anos que foram feitos para serem usados "apenas uma vez".
Legibilidade conta, evite os "one line commands" tão famosos, variáveis globais sempre em MAIÚSCULAS, variáveis locais sempre em minúsculas, funções são sempre bem vindas, evite o uso de ``, prefira usar $(), sempre que possível evite o uso $NOME use ${ NOME } isso evita vários problemas de resolução de nomes.
Saiba muito bem a diferença entre usar "" e ''; variáveis com nomes descritivos, o mesmo vale para o nome das funções, se for escrever em inglês faça tudo em inglês, se for fazer em português escreva tudo em português.
Edentação não é frescura, comentários objetivos, comentários óbvios do tipo: #Aqui soma a variável Y com X; não ajudam.
Evite códigos obscuros, evite scripts que fazem muitas coisas, sempre lembre do KISS.

Lembre, se está ficando muito complexo, talvez seja melhor escrever em uma linguagem de programação.


7. Explica uma Coisa

Weidllan Djeizo Dos Santos
Weidllan

(usa Ubuntu)

Enviado em 14/12/2008 - 23:09h

Se eu faço as linhas com:

* COmentario
* Echo
* Comando

Será preciso colocar # nas três linhas?
Pois "apt-get" e "shutdown" não é uma tarefa comum e se administrativa, então, entra o sudo, que pensei que não teria cabimento executar o script assim.

Então penso eu que # antes de um comando administrativo não importa qual, o arquivo tendo privilegio de execução, vai executar a tarefa com se tivesse logado como root.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts