Metacaracteres (Caracteres Especiais)
< | Redirecionamento da STDIN |
<< | Inclusao de dados |
> | Redirecionamento da STDOUT (Criação) |
>> | Redirecionamento da STDOUT (Criação, inclusão) |
; | Processamento sequencial de comandos |
| | Processamento paralelo de comandos em conexão (PIPE) |
& | Processamento paralelo de comandos em retaguarda |
<& | Fecha a entrada padrão |
>& | Processamento paralelo de comandos em retaguarda |
&& | Conector logico “e” |
|| | Conector logico “ou” |
;; | Delimitador do comando “case” |
( ) | Agrupamento de comandos (Função) |
. | Qualquer serie de caractere |
? | Qualquer caractere simples |
[ ] | Qualquer caractere dentro dos colchetes |
- | Indica o intervalo (limite) dos caracteres |
\ | Faz com que os metacaracteres percam sua função |
$ | Representa variavel |
# | Comentario em Shell Script |
ENTRADA E SAIDA PADRAO
No Unix, o padrão é que a entrada de um comando seja feita via teclado e que a saida, o resultado do comando ou a mensagem de erro, seja apresentada na tela. Portanto, para o Unix a entrada padrão (STDIN – Standard input) é o teclado, e a saida padrão (STDOUT –Standard output) e a saida de erro (STDERR – Standard error) é o video.
Tanto a entrada padrão quanto a saida padrão e a saida de erro podem ser facilmente redirecionadas para um arquivo. O redirecionamento é obtido atraves dos metacaracteres “<” e ”>”
< arquivo – redireciona a entrada padrão para o arquivo especificado
> arquivo – redireciona a saida padrão para o arquivo especificado
2> arquivo – redireciona a saida de erro padrão para o arquivo especificado.
Exemplo:
ls –l > listagem.txt
Nesse exemplo, a saida do comando ls, sera gravada no arquivo listagem.txt ao inves de ser apresentada na tela.
CANALIZAÇÃO (PIPE) E FILTROS
Um pipe permite que se conecte dois comandos, de forma que a saida de um seja a entrada do outro. O estabelecimento de um pipe é dado atraves do caractere “|”, colocado entre os dois comandos.
Quando se estabelece um pipe entre 2 comandos, a saida padrão do primeiro é conectada diretamente a entrada padrão do segundo.
Um pipe é diferente de um redirecionamento. O redirecionamento de entrada faz com que um arquivo contenha a entrada para um comando e o redirecionamento de saida grava a saida de um comando em um arquivo. O pipe conecta diretamente a saida do primeiro comando a entrada do segundo comando.
Exemplo:
ls –l | mail usuario1
neste exemplo, a saida do comando ls sera a entrada para o comando mail.
Um filtro é um programa que aceita a entrada de um fonte, executa o processamento necessario e grava o resultado em um outro lugar sem alterar o arquivo de entrada. Um exemplo de filtro seria o comando sort que sera visto mais a frente. O comando sort classifica um arquivo de entrada e exibe a saida classificada na tela ou grava-a em um arquivo de saida. O arquivo de entrada (fonte) não é de forma alguma alterado.
VARIAVEIS SHELL
As variaveis configuram o ambiente shell. Elas são conhecidas como variaveis de trabalho. Estas variaveis podem ser divididas em dois grupos:
- variaveis pré-definidas do sistema
- variaveis definidas pelo usuario
PRINCIPAIS VARIAVEIS PRE-DEFINIDAS DO SISTEMA
HOME - diretorio de login
PATH – lista de diretorios para pesquisa de comandos. Os diretorios são pesquisados da esquerda para a direita ate que o comando seja encontrado.
MAIL – caixa postal do correio eletronico
LOGNAME – nome de usuario
PS1 – prompt principal
PS2 – prompt secundario
TERM – tipo de terminal
SHELL – tipo de shell
TZ – define zona do mundo e horario
IFS – define quais são os caracteres utilizados para separação interna de campos (espaço, tabulação e retorno de carro).
PWD – Path de diretorio corrente
VARIAVEIS DEFINIDAS PELO USUARIO
O shell permite que o usuario crie suas proprias variaveis. Elas são criadas através de atribuição, como mostram os exemplos abaixo:
a=0
b=”unix”
VAR01=10
VAR02=”programa”
Observação: Os nomes de variaveis podem conter caracteres alfabeticos ou numericos, mas nunca podem começar por caracteres numericos.