Introdução
O que são os shell scripts? Shell scripts são
conjuntos de comandos armazenados em um arquivo texto que
são executados seqüencialmente. Nesta primeira
parte, faremos uma introdução sobre o shell, o
formato desses arquivos e variáveis de ambiente.
Uma boa referéncia de livro sobre Shell Script é o livro do Aurélio.
O que é Shell
Shell, ou interpretador de comandos, é o programa
disparado logo após o login responsável por
"pegar" os comandos do usuário, interpretá-los e
executar uma determinada ação.
Por exemplo, quando você escreve no console "ls" e
pressiona <enter>, o shell lê essa string e
verifica se existe algum comando interno (embutido no
próprio shell) com esse nome. Se houver, ele executa
esse comando interno. Caso contrário, ele vai procurar
no PATH por algum programa que tenha esse nome. Se
encontrar, ele executa esse programa, caso contrário,
ele retorna uma mensagem de erro. Para cada terminal ou
console aberto, existe um shell sendo executado. Quando
você entra no seu Linux, ele apresenta o login, para
digitar o usuário e a senha. Ao digitar um par
usuário/senha correto, o Linux abre automaticamente um
shell, que vai ficar esperando seus comandos. Veja o
exemplo abaixo:
Welcome to Linux Slackware 7.1 kernel 2.2.16.
matrix login: neo
Password:
Linux 2.2.16.
Last login: Mon Sep 25 10:41:12 -0300 2000 on tty1.
No mail.
neo@matrix:~$
Essa ultima linha é o shell. Se você der o
comando "ps", vai ver que um dos programas rodando é o
seu shell:
neo@matrix:~$ ps
PID TTY TIME CMD
164 tty2 00:00:00 bash
213 tty2 00:00:00 ps
neo@matrix:~$
Ou seja, o shell utilizado nesse console é o bash,
que está rodando com PID 164.
Existem diversos tipos de shell: bash, csh, ksh, ash, etc.
O mais utilizado atualmente é o bash (GNU Bourne-Again
SHell). Por isso, tomaremos ele como referência.
Resumindo essa seção, é importante saber
que para cada terminal ou console aberto, tem-se um shell
rodando. Assim, se você tem 3 xterms abertos na
interface gráfica, vai ter um shell para cada xterm.
Ao executar o shell script, o shell atual (no qual
você deu o comando) abre um novo shell para executar o
script. Assim, os scripts são executados em um shell
próprio (a menos que se especifique, ao chamar o script,
para executá-lo no shell atual). Isso será
importante quando formos tratar de variáveis de
ambiente.
|