PROGRAMAÇÃO SHELL BASH
by
Edson Pessotti /Programador Tecnólogo
Pra Começar:
1 -O shell e bem peculiar, poderoso
interativo dinâmico versátil, oferece ao administrador de sistemas
facilidades que nenhuma outra linguagem
possui, shell interage com o usuário com o sistema, e pode criar
novos comandos, shell modifica as configurações do sistema se
integra ao sistema, as possibilidades são infinitas, ele pode até
dependendo das circunstancias se tornar mais lendo que outras
linguagens, shell não é apenas uma linguagens de scripts e uma
linguagem de programação completa.
Shell não se restringi a utilização
no dia-a-dia, podendo ser empregado para criar programas
complexos,. Estes programas são designados geralmente "shell
scripts" ou "shell procedures". scripts Shell estão
presentes em todo do o sistema linux, basta dar um
edhonm@edhonm-STI:~$ find /etc/ | grep
sh$
/etc/acpi/ibm-wireless.sh
/etc/acpi/asus-wireless.sh
/etc/acpi/undock.sh
/etc/acpi/powerbtn.sh
/etc/acpi/asus-keyboard-backlight.sh
/etc/acpi/tosh-wireless.sh
/etc/apparmor.d/abstractions/bash
/etc/ssh
/etc/bash_completion.d/libreoffice.sh
/etc/pam.d/chsh
find: `/etc/cups/ssl': Permission denied
find: `/etc/ssl/private': Permission
denied
find: `/etc/polkit-1/localauthority':
Permission denied
/etc/libreoffice/soffice.sh
/etc/wpa_supplicant/ifupdown.sh
/etc/wpa_supplicant/functions.sh
-
edhonm@edhonm-STI:~$
Shell é muito útil para criar
pequenos programas par realizar tarefas do dia-a-dia repetitivas,
utilizando para isso apenas os comandos já existentes no UNIX.
O shell pussuí dezenas de comandos que
realizam varias rotinas, como o sort , cat , find, sed etc, esses comandos quando usados de forma
adequada podem formar scripts para resolver inúmeros problemas do
dia a dia , e o autor não precisa digitar uma linha de código
sequer.
1.1 Um pequeno exemplo de shell script
Vamos começar criando um pequeno
script que se utilize dos comandos nativos do shell para efetuar as
seguintes tarefas:
- Mostrar o nome do
diretório corrente.
- Listar o conteúdo
do diretório corrente.
- Mostrar a data e
hora do sistemas
- encerrar
Os comandos do shell podem ser digitados
diretamente na linha de comando um a um ou intercalando vários
comandos com | ' pipe ' , mas se queremos então automatizar
temos que usar o shell script.
Estaco as tarefas acima poderiam ser
executadas manualmente através da utilização dos comandos "pwd",
"ls" e "echo". Para automatizar esta tarefa basta
criar um script com os comandos dentro.
Para tanto e necessário utilizar um
editor de texto não formatado, tipo gedit leafpad ou o note do
Windows, pode o si nano ou o seu editor preferido, para criar um
ficheiro chamado "mostradir" :
PS → Eu gosto do Geany → pra quem
usa Debians/like → sudo apt-get install geany → na linha de
comando do terminal.
Abra o editor e digite:
Note que a primeira linha e obrigatório
em todos os scripts, isso alerta o sistema pra o fato de ser tratar
de um shell BASH SCRIPT, E O ARQUIVO DEVERÁ SER SAlVO COM A
TERMINAÇÃO .SH PARA QUE O SISTEMA O RECONHEÇA COMO SENDO UM SCRIPT
SHELL.
#!/bin/bash |
pwd |
ls |
Date
exit |
Você já tem o seu primeiro programa
escrito em shell! Para o executar basta, a partir do shell, digitar o
seguinte comando:
./mostradir.sh → antes de executar e
preciso dar permissão para o arquivo:
Com o comando:
sudo chmod +x
mostradir.sh
feito isso e só executar o comando
Assim:
edhonm@edhonm-STI:~$
./mostradir.sh
/home/edhonm
Área de Trabalho
Downloads Imagens mostradir.sh Público
Documentos ed
Modelos Música Vídeos
Qua Dez 23
10:45:17 BRST 2015
edhonm@edhonm-STI:~$
1.2. Como criar um comando.
Para executar os comandos a partir de
qualquer diretório, tal como os comandos do UNIX, que estão
localizados nos diretórios /bin e /usr/bin. Vamos criar um
sub-directório bin do nosso diretório.
Vamos configurar a variável de
ambiente PATH de modo a que o shell passe a procurar comandos também
neste nosso subdiretório.
ASSIM:
$
cd
$
mkdir bin
$
mv dl bin/dl
$
PATH=$HOME/bin:$PATH
|
Agora, se tudo correu bem, será
possível chamar o novo comando mostradir.sh de qualquer diretório.
Experimente.
No diretório corrente:
edhonm@edhonm-STI:~$ mostradir.sh
/home/edhonm
Área de Trabalho Documentos ed
Modelos Público
bin Downloads Imagens
Música Vídeos
Qua Dez 23 11:01:06 BRST 2015
No diretório /var:
edhonm@edhonm-STI:~$ cd /var
edhonm@edhonm-STI:/var$ mostradir.sh
/var
backups cache crash lib local lock
log mail opt run spool tmp
Qua Dez 23 11:03:24 BRST 2015
edhonm@edhonm-STI:/var$
Repare que o nome "bin" dado
ao nosso sub-directório não é padrão. Poderia ser qualquer nome
assim tipo Palmeiras, mas ficamos com a tradição UNIX - "bin"
- que é usado para diretórios que contêm programas executáveis.
Avisos acerca dos nomes dos shell
scripts você dar qualquer nome ao script, desde que este seja um
nome de arquivo válido. Só não vá dar nomes já existentes no
sistema obvio né.
Veja só um problema que poderia
surgir caso lhe nomeasse de "ls", já que o próprio
script invoca o comando ls. Seria criado um ciclo infinito, já que
cada chamada ao nosso programa "ls" invocaria outro comando
"ls" e nunca terminaria nenhum deles. Após algum tempo, o
sistema emitiria a seguinte mensagem de erro: "Too many
processes, cannot fork" que significa que foram criados
demasiados processos, atingindo o limite imposto pelo sistema.
Os criadores do UNIX, sabiamente,
limitaram o número de vezes que um ciclo infinito deste gênero.
Beleza né aprendemos a criar e a
executar um script shell, e de quebra transformamos o script em um
comando do nosso sistema, muito manero esse SHELL BASH NÉ..
Página Anterior Proxima Página
Página Anterior Proxima Página
Nenhum comentário:
Postar um comentário