├── bash.png ├── scripts ├── hello.sh ├── maioridade.sh └── tre.sh ├── LICENSE ├── README.md └── tutorial.txt /bash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorjosedeassis/shellscript/HEAD/bash.png -------------------------------------------------------------------------------- /scripts/hello.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | clear; 3 | echo -n "Digite o seu nome: "; 4 | read nome; 5 | echo "Hello "$nome; 6 | exit; 7 | -------------------------------------------------------------------------------- /scripts/maioridade.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | clear; 3 | echo -n "Digite a sua idade: "; 4 | read idade; 5 | ### estrutura condicional if else 6 | if [ $idade -lt 18 ]; then 7 | echo "menor de idade"; 8 | else 9 | echo "maior de idade"; 10 | fi 11 | exit; 12 | -------------------------------------------------------------------------------- /scripts/tre.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | clear; 3 | echo "=============== TRE ================"; 4 | echo ""; 5 | echo -n "Digite a sua idade: "; 6 | read idade; 7 | ### encadeamento do if, operadores lógicos e comparadores 8 | if [ $idade -lt 16 ]; then 9 | echo "PROIBIDO VOTAR"; 10 | elif [ $idade -ge 18 ] && [ $idade -le 70 ]; then 11 | echo "OBRIGATÓRIO VOTAR"; 12 | elif [ $idade -eq 16 ] || [ $idade -eq 17 ] || [ $idade -gt 70 ]; then 13 | echo "VOTO FACULTATIVO"; 14 | fi 15 | exit; 16 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Professor José de Assis 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![GitHub](https://img.shields.io/github/license/professorjosedeassis/shellscript) 2 | 3 | # Shell script 4 | Shell script é um programa ou conjunto de comandos escritos em uma linguagem de script (geralmente, mas não necessariamente, em bash) que é executado no shell de um sistema operacional, como o Linux ou o macOS. Ele permite automatizar tarefas, como manipular arquivos, executar programas e realizar várias operações no sistema operacional por meio de instruções escritas em um arquivo de script, tornando a interação com o sistema mais eficiente. 5 | 6 | [https://www.shellscript.sh/](https://www.shellscript.sh/) 7 | 8 | :octocat: Este repositório foi usado como um dos exemplos do curso Git e GitHub. 9 | ### Autor 10 | Professor José de Assis 11 | ### Videoaula (Instalar e configurar Git e GitHub no Linux) 12 | [![gitegithub](https://img.youtube.com/vi/YKjPi7Td3ZQ/0.jpg)](https://youtu.be/YKjPi7Td3ZQ?si=TstBpkwzSjVmsXhl "Assistir no YouTube") 13 | 14 | ![YouTube Video Views](https://img.shields.io/youtube/views/YKjPi7Td3ZQ?style=social) 15 | 16 |
17 | 18 | ### ☕ Projetos sem café? Impossível! 19 | Criar e compartilhar projetos gratuitos exige tempo, dedicação e, claro, muito café! Se quiser apoiar, um "cafezinho" faz toda a diferença.
Sua doação incentiva mais projetos reais e mantém a motivação lá em cima! 20 | #### Chave PIX❖: 21 | ~~~txt 22 | josedeassisfilho@gmail.com 23 | ~~~ 24 | *( em nome de José de Assis Filho )* 25 | 26 | E olha, só de dar uma estrela ⭐, seguir o repositório e compartilhar, você já está dando uma baita força! 27 | 28 | 😃 Valeu demais pelo apoio! 29 | -------------------------------------------------------------------------------- /tutorial.txt: -------------------------------------------------------------------------------- 1 | ###### Introdução ao Shell script ###### 2 | 3 | 1) Shell é um ambiente misto (digitação de comandos e programação) 4 | 2) BASH é o shell mais popular 5 | 3) Shell script é uma linguagem de script que roda em cima de uma linguagem base (Linguagem C) 6 | 7 | ###### Variáveis ###### 8 | 9 | Na programação utilizamos as variáveis para armazenar dados na memória. 10 | Basicamente temos 3 tipos de dados que podem ser armazenados nas variáveis: 11 | • String (consiste em letras e outros caracteres) 12 | • Numérico (lida com números inteiros e reais) 13 | • Booleano (verdadeiro ou falso) 14 | 15 | Boas práticas para nomear variáveis nas linguagens de programação 16 | • Todos os nomes diferenciam letras maiúsculas de minúsculas 17 | • O nome deve começar com uma letra 18 | • Não usar caracteres especiais nem deixar espaços 19 | • Não usar palavras chaves ou reservadas da linguagem de programação 20 | • Definir nomes que descrevam o tipo de informação que as variáveis armazenam 21 | 22 | Para criar uma variável no shell basta atribuir um valor ao nome da variável 23 | Eexemplos: 24 | nome="José de Assis" 25 | nota=8 26 | 27 | Comandos: 28 | echo -> "imprime um texto no terminal" 29 | echo$ -> "mostra" o conteúdo de uma variável 30 | set -> exibe todas as variáveis 31 | unset -> apaga uma variável 32 | export -> transforma uma variável em global 33 | env -> exibe todas as variáveis exportadas 34 | 35 | ###### Operadores Aritméticos ###### 36 | 37 | + (soma) 38 | - (subtração) 39 | * (multiplicação) 40 | / (divisão) 41 | % (resto da divisão) 42 | 43 | ###### Operadores Lógicos ###### 44 | 45 | && (AND) 46 | || (OR) 47 | ! (NOT) 48 | 49 | ###### Comparadores ###### 50 | 51 | -eq (igual) 52 | -ne (diferente) 53 | -gt (maior) 54 | -lt (menor) 55 | -le (menor igual) 56 | -ge (maior igual) 57 | 58 | ###### Estruturas de controle ###### 59 | 60 | Estrutura condicional (if else) 61 | if [ condição ]; then 62 | #condição verdadeira; 63 | else 64 | #condição falsa; 65 | fi 66 | 67 | Sintaxe shell script (if else encadeado): 68 | if [ condição1 ]; then 69 | #condição1 verdadeira; 70 | elif [ condição2 ]; then 71 | #condição2 verdadeira; 72 | else 73 | #condição falsa; 74 | fi 75 | 76 | Sintaxe shell script da estrutura switch case 77 | case (variável) in 78 | "1") 79 | #código1 80 | ;; 81 | "2") 82 | #código2 83 | ;; 84 | *) 85 | #nenhuma das anteriores 86 | esac; 87 | 88 | Sintaxe shell script da estrutura for (laço de repetição) 89 | for contador in {1..10} 90 | do 91 | #comandos; 92 | done 93 | 94 | Sintaxe shell script da estrutura while (laço de repetição) 95 | while [ condição ] 96 | do 97 | #comandos; 98 | done 99 | 100 | #>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 101 | vi pegadinha.sh 102 | 103 | #!/bin/bash 104 | #eject (abre a gaveta do DVD) 105 | #eject -t (fecha a gaveta do DVD) 106 | #sleep (timer em segundos) 107 | for contador in {1..5} 108 | do 109 | eject; 110 | sleep 2; 111 | eject -t; 112 | sleep 2; 113 | done 114 | exit; 115 | #>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 116 | 117 | ###### Criando uma função no Shell ###### 118 | 119 | nome() { 120 | #código 121 | } 122 | 123 | Para executar a função basta digitar o nome! 124 | 125 | #>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 126 | Exemplo de script para facilitar o back-up 127 | vi backup.sh 128 | 129 | #!/bin/bash 130 | clear; 131 | echo -n "Digite o diretório origem do back-up: "; 132 | read origem; 133 | ### Verificando se existe o diretório de origem 134 | ## -d (verifica se existe o caminho do diretório apontado na variável $origem) 135 | ## ! (NOT "inversor") se não existir 136 | if [ ! -d $origem ]; then 137 | echo "diretório não encontrado"; 138 | exit; 139 | fi 140 | ### criando um backup com data e hora automática 141 | ### Para atribuir um comando personalizado a variável, usar `apostrofe` 142 | data=`date + %d%m%y%H%M%S`; 143 | tar -czvf $data.tgz $origem; 144 | clear; 145 | echo "Backup realizado com sucesso em `pwd`; 146 | exit; 147 | #>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 148 | --------------------------------------------------------------------------------