Aula 7.0: Introdução a ShellScript

COMPARTILHAR:

Aula 7.0 - História e exemplos de códigos

Este artigo faz parte do projeto #LTCode



Ken Thompson ao lado de Dennis Ritchie
Ken Thompson, quando estava criando o kernel UNIX (década de 70) com Dennis Ritchie, precisou criar uma ferramenta para se comunicar com o kernel de uma forma mais simples, essa ferramenta era o Thompson Shell, um interpretador de comandos.



Mais tarde, Stephen Bourne se interessou pela ferramenta e criou sua versão chamada Bourne SHell, que depois se tornou o interpretador padrão do UNIX.

Stephen Bourne
Com o tempo surgiram ferramentas baseadas no Bourne SHell, por conta das restrições das licenças de uso do UNIX. Assim surgiu o bash, "Bourne-Again SHell", em 1989. Uma evolução retro-compatível muito mais interativa, que acabou se tornando padrão nos sistemas UNIX diante. Portanto ShellScript são comandos que podem ser lidos e executados pelo bash ou outro interpretador (shell).

Os interpretadores de comandos geralmente possuem dois modos de execução: o modo interativo e o modo não interativo. O modo interativo tem esse nome pois você mantém um diálogo com o interpretador, bash por exemplo, assim o shell script é basicamente a automatização desse processo eliminando boa parte da interação humana.

“Se colocarmos diversas linhas de comandos em um arquivo texto simples, teremos em mãos um Shell Script, ou um script em shell, já que Script é uma descrição geral de qualquer programa escrito em linguagem interpretada, ou seja, não compilada.”[1]


  • Windows



Os arquivos batch do Windows, os famosos .bat, são exemplos de Shell Scripts executados pelo cmd.exe. Atualmente o Windows 10 suporta ShellScripts para o interpretador bash, desde que habilitado os recursos do “Subsistema Windows para Linux” no sistema.


  • Linux

Bash é o shell padrão do projeto GNU, portanto está presente na maioria das distribuições Linux ao abrir o terminal. 


Um shellscript pode ser executado apenas digitando ./nome_do_arquivo

Geralmente é necessário dar permissão de execução ao shellscript, para isso basta digitar no terminal: chmod +x nome_do_arquivo .

Como é um Hello World em ShellScript? Simples, confira:
Note que “#!/bin/bash” mesmo estando comentada, serve para indicar o shell a ser usado.

  • Variáveis:
ShellScript é fracamente tipada, portanto pode-se armazenar qualquer valor nas variáveis. Toda variável começa com qualquer letra, maiúscula, minúscula ou começa com _ (underscore).

No código da imagem acima, a variável "_var" recebe uma string e então é impresso na tela o conteúdo da variável utilizando do comando "echo". Mas atenção, se você deixar espaço entre a variável e o símbolo de "igual" (atribuição), você receberá um erro de "command not found" (comando não encontrado).

Um caractere útil é o caractere "\" (barra invertida), ele serve para você utilizar caracteres que já são reservados pela linguagem:

Você também pode atribuir comandos do terminal em variáveis, para isso você necessita utilizar do simbolo de case "`" (acento invertido) ou $(). Confira:

Como ler do teclado o que o usuário digitar? Simples, use o comando "read" seguido de uma variável:
  • if else
A imagem abaixo ilustra a utilização da estrutura if else:
Note que é necessário deixar sempre um espaço ao redor dos colchetes [ ]. Também é importante saber que o "if" em ShellScript sempre testa a saída de um comando e não uma condição e que o "if "sempre termina com "fi".

  • case

Bastante intuitivo o código. Sim, é necessário aqueles dois pontos e vírgulas, note também que o fechamento do case se dá pela palavra "esac".

  • for
Será demonstrado abaixo duas formas de realizar um loop for:

O primeiro "for" da imagem é um "for" simples decrescente, aquele "-n" ali é para não quebrar linha. Já o segundo "for" possui intervalos, para isso utiliza-se o comando "seq" seguido do começo do loop, de quanto em quanto deve pular e até quanto deve ir o loop.

  • while
Preciso nem explicar o loop while:

  • funções
O uso de funções lembra muito a linguagem C. Note que "-le" significa "menor ou igual".
  • argumentos
Passagem de argumentos, aqui o ShellScript ao ser executado espera por argumentos passados por linha de comando para que seja executado. O primeiro argumento é obtido pelo comando $0 que é o nome do próprio script. Sendo assim:

$0 – contém o nome do script que foi executado;
$1 … $n – contêm os argumentos na ordem em que foram passados;
$# - contém o número de argumentos que foi passado (desconsidera $0);
$* - retorna todos os argumentos de uma vez só;


A introdução termina por aqui, se gostou comente abaixo pois se a demanda for boa, trazemos mais conteúdo sobre ShellScript!

Fontes:

COMENTÁRIOS

Nome

#ann,24,#HK,20,#LTCode,70,Artigo - Diversos,159,Artigo - Games,196,Artigo - Tecnologia,530,autor-thomaz,7,Coluna - Alternative World,24,Coluna - Fail,12,Coluna - Tec Line,14,Criptomoeda,58,Curiosidades - Diversos,49,Curiosidades - Tecnologia,50,en,2,HN,12,Raspberry Pi,9,root,70,Shorty Awards,1,Smartphones - Reviews,33,Top Nostalgia,2,VPN,17,WhatsApp,44,
ltr
item
Limon Tec: Aula 7.0: Introdução a ShellScript
Aula 7.0: Introdução a ShellScript
Aula 7.0 - História e exemplos de códigos
https://1.bp.blogspot.com/-Vv6C0DkQgY0/WG_EGTY1EhI/AAAAAAAAFcs/qphwk8Z4UdkFSQu0zbS5xoZ_9_KovVlJACLcB/s640/ltcode.jpg
https://1.bp.blogspot.com/-Vv6C0DkQgY0/WG_EGTY1EhI/AAAAAAAAFcs/qphwk8Z4UdkFSQu0zbS5xoZ_9_KovVlJACLcB/s72-c/ltcode.jpg
Limon Tec
https://www.limontec.com/2019/10/aula-7-0-shellscript-ltcode.html
https://www.limontec.com/
https://www.limontec.com/
https://www.limontec.com/2019/10/aula-7-0-shellscript-ltcode.html
false
2157924926610706248
UTF-8
Carregar todos posts Não encontramos nenhum post VER TUDO Ler mais Responder Cancelar resposta Deletar Por Home PÁGINAS POSTS Ver tudo RECOMENDADO PARA VOCÊ LABEL ARQUIVO SEARCH TODOS POSTS Não encontramos nenhum post relacionado a sua requisição VOLTAR PÁGINA INICIAL Domingo Segunda Terça Quarta Quinta Sexta Sábado Dom Seg Ter Qua Qui Sex Sab Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro Jan Fev Mar Abr Maio Jun Jul Ago Set Out Nov Dez apenas agora 1 minuto atrás $$1$$ minutes ago 1 hora atrás $$1$$ hours ago Ontem $$1$$ days ago $$1$$ weeks ago mais de 5 semanas atrás Seguidores Seguir ESTE CONTEÚDO ESTÁ BLOQUEADO PASSO 1: Compartilhe com seus amigos PASSO 2: Clique no link compartilhado Copiar Todo Código Selecionar Todo Código Todos códigos foram copiados para seu clipboard Não é possível copiar códigos / textos, por favor aperte [CTRL]+[C] (ou CMD+C no Mac) para copiar Tabela de conteúdo