├── 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 | 
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 | [](https://youtu.be/YKjPi7Td3ZQ?si=TstBpkwzSjVmsXhl "Assistir no YouTube")
13 |
14 | 
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 |
--------------------------------------------------------------------------------