bash-programming-how-to-translate Documentation .bash-programming-how-to-translate Documentation

  • View
    212

  • Download
    0

Embed Size (px)

Text of bash-programming-how-to-translate Documentation .bash-programming-how-to-translate Documentation

bash-programming-how-to-translateDocumentation

Release 0.0.1

Ciro S. Costa

October 18, 2016

Contents

1 Este Documento 3

2 Guia 52.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1.1 Obtendo a ltima verso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.1.2 Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.1.3 Usos deste documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2 Scripts muito simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2.1 O tradicional script de Hello World . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.2 Um script de backup muito simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.3 Tudo sobre redirecionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3.1 Teoria e rpida referncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3.2 Exemplo: stdout para arquivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3.3 Exemplo: stderr 2 arquivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3.4 Exemplo: stdout 2 stderr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.4 Pipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.4.1 O que eles so e porque vai us-los . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.4.2 Pipe simples com sed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.4.3 Exemplo: uma alternativa para ls -l *.txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.5 Variveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.5.1 Exemplo: Hello World! usando variveis . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.5.2 Exemplo: Um script de backup muito simples (um pouco melhor) . . . . . . . . . . . . . . 82.5.3 Variveis Locais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.6 Condicionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.6.1 Teoria Pura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.6.2 Exemplo: Condicional bsica if .. then . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.6.3 Exemplo: Condicional bsica if .. then ... else . . . . . . . . . . . . . . . . . . . . . . . . . 102.6.4 Exemplo: Condicionais com Variveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.7 Loops, For, While e Until . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.7.1 Por Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.7.2 for parecido com C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.7.3 Exemplo While . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.7.4 Exemplo Until . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.8 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.8.1 Exemplo de Funo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.8.2 Exemplo de funo com parmetro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.9 User Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.9.1 Usando select para criar menus simples . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

i

2.9.2 Usando a linha de comando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.10 Misc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.10.1 10.1 Reading user input with read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.10.2 10.2 Arithmetic evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.10.3 10.3 Finding bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.10.4 10.4 Getting the return value of a program . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.10.5 10.5 Capturing a commands output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.10.6 10.6 Multiple source files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.11 Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.11.1 11.1 String comparison operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.11.2 11.2 String comparison examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.11.3 11.3 Arithmetic operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.11.4 11.4 Arithmetic relational operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.11.5 11.5 Useful commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.12 Mais Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.13 Quando algo d errado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.14 Sobre o documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3 ndices e Tabelas 19

ii

bash-programming-how-to-translate Documentation, Release 0.0.1

O documento original redigido por Mike G pode ser encontrado na seo de HOW-TOs da The Linux DocumentationProject.

Este no um guia avanado, mas bastante simplificado e direto quanto a conceitos e funes bsicas. No apreteno deste abordar a fundo os tpicos, o que pode ser percebido inclusive pelo tamanho destes.

De grande valia este documento pode ser para aqueles que desejem iniciar algo rpido para possuir alguma base parafuturos estudos.

Para aprendizado posterior a este recomendo a leitura do Advanced Bash-Scripting Guide de Mendel Cooper.

Contents 1

http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.htmlhttp://www.tldp.org/LDP/abs/html/

bash-programming-how-to-translate Documentation, Release 0.0.1

2 Contents

CHAPTER 1

Este Documento

Este documento busca primariamente ser uma fonte de futura referncia para o autor e, quem sabe, para a comunidade.Mais do que apenas traduzir, o autor espera que ao apresentar ao pblico geral um simples documento praticamentepuro de HTML numa forma mais iterativa/visualmente agradvel, incentivar (ou tentar no desistimular) um nmeromaior de pessoas.

3

bash-programming-how-to-translate Documentation, Release 0.0.1

4 Chapter 1. Este Documento

CHAPTER 2

Guia

2.1 Introduction

2.1.1 Obtendo a ltima verso

http://www.linuxdoc.org/HOWTO/Bash-Prog-Intro-HOWTO.html

2.1.2 Requisitos

Familiaridade com linhas de comando GNU/Linux e tambm com conceitos bsicos de programao so desejveis.Ao passo que este no se trata de uma introduo programao, explica (ao ao menos tenta) muito conceitos bsicos.

2.1.3 Usos deste documento

Este documento tenta ser til para as seguinte situaes:

Voc possui alguma ideia sobre programao e deseja comear a programar alguns script para shell.

Voc possui uma vaga ideia sobre programao para shell e deseja alguma referncia.

Voc quer ver alguns scripts e comentrios para comear a escrever seus prprios.

Voc est migranto do DOS/Windows (ou j fez) e deseja fazer alguns batch process (execuo de uma sriede programas)

Voc um completo nerd e l tudo o que h de disponvel.

2.2 Scripts muito simples

Este COMO FAZER lhe dar algumas dicas sobre como programao por schell script fortemente baseada em exem-plos.

Nesta seo voc encontrar alguns pequenos scripts que com sorte lhe ajudaro a entender algumas tcnicas.

5

http://www.linuxdoc.org/HOWTO/Bash-Prog-Intro-HOWTO.html

bash-programming-how-to-translate Documentation, Release 0.0.1

2.2.1 O tradicional script de Hello World

#!/bin/bashecho Hello World

O script possui apenas duas linhas. A primeira indica o sistema que o programa usa para rodar o arquivo.

A segunda linha a nica ao performada pelo script, que printa Hello World no terminal.

Se voc receber algo parecido com ./hello.sh: Command not found provavelmente a primeira linha est errada. Enviewhereis bash ou busque por buscando bash para ver como escrever esta linha.

2.2.2 Um script de backup muito simples

#!/bin/bashtar -cZf /var/my-backup.tgz /home/me/

Neste script, ao invs de printar a mensagem no terminal, criamos um arquivo tar-ball com o diretorio completo dousuario.

Isto no pretendido para ser utilizado. Um script mais til de backup ser apresentado mais frente neste documento.

2.3 Tudo sobre redirecionamento

2.3.1 Teoria e rpida referncia

Existem trs descritores de arquivo: stdin, stdout e stderror (sendo std = Standard = Padro).

Basicamente voc pode:

redirecionar stdout para um arquivo

redirecionar stderr para um arquivo

redirecionar stdout para um stderr

redirecionar stderr para uma stdout

redirecionar stderr e stdout para arquivo

redirecionar stderr e stdout ** para **stdout

redirecionar stderr e stdout para stderr