shellscript
Programação em BASH
Programação de Sistemas
Programação em Bash : 1/58
Introdução (1)
[Def] A shell, ou “interpretador de comandos” é um componente do SO que faz de interface entre o utilizador e o núcleo.
– O núcleo gere o sistema, é carregado no “boot-up”, reside em memória e mantém-se até ser efectuado o “shutdown”.
– A shell é um processo carregado automaticamente quando o utilizador faz o “login”, sendo eliminado quando o utilizador faz o
“logout”.
Reside, normalmente, em /bin.
Nota: as potencialidades do Shell influenciaram linguagens de manipulação de texto, como o Perl e o AWK.
Programação de Sistemas
Programação em Bash : 2/58
Introdução (2)
• Principais funções
– Ler e analisar linha de comando. – Avaliar metacaracteres.
– Estabelecer tubos
(“pipes”), redireccionar e processar em fundo
(“background”).
– Gerir sinais.
– Preparar programas para execução.
Afixar “prompt”
Ler comando
Comando
“built-in”?
S
Executa comando
N
Lança processo filho
Programa
executável?
S
Nucleo carrega programa e executa-o como processo filho
Novo processo corre e termina
N
Script
terminou?
S
exit
N
Programação de Sistemas
Pai espera
Pai acorda
Programação em Bash : 3/58
Introdução (3)
• Existem 4 categorias de shell (extensões)
1. Histórico: sh, desenvolvido por Ken Thompson dos Bell Labs.
2. Bourne shell (sh), o primeiro desenhado em 1978 por Steve
Bourne dos Bell Labs.
• Korn shell (ksh): http://www.kornshell.com
• zsh: http://www.zsh.org
• Bash (Bourne Again Shell), criado em 1988 por Brian Frox, normalizado pela
GNU.
3. C shell, desenvolvido na UC Berkeley.
• tcsh: http://www.tcsh.org
4. Exóticos
• Neste capítulo abordamos o BASH (informação extra em http://tldp.org/HOWTO/Bash-Prompt-HOWTO/) – Adoptado pelos “scripts” do Linux.
– É o shell mais usado pela comunidade.
Programação de Sistemas
Programação em Bash : 4/58
Introdução (4)
•