2
respostas

Linux: Entendendo a sintaxe do shell...

Se você achava que Shell Script era uma linguagem feita pra invocar o Cthulhu do terminal... bom, você não está totalmente errado. Mas também não está sozinho. Vamos simplificar a coisa toda, com explicações, exemplos, boas práticas e um pouco de humor.

Estrutura básica

#!/bin/bash
# Comentário explicativo
echo "Olá, mundo!"

Diferença entre ${variavel} e $(comando)

${variavel} – Interpolação de variáveis

Usado para acessar o valor de uma variável.

nome="Fulano"
echo "Bem-vindo, ${nome}"

Use as chaves para evitar ambiguidade com o restante do texto:

echo "Arquivo: ${nome}_2025.txt"

Sem as chaves, o shell pode entender que a variável se chama nome_2025.

$(comando) – Substituição de comando

Executa o comando e insere o resultado.

data=$(date)
echo "Hoje é $data"

Você também pode usar a forma antiga com crase:

data=`date`

Funciona, mas é menos legível e mais difícil de aninhar.

Comandos Shell úteis e frequentes

ComandoO que fazExemplo
echoImprime no terminalecho "Oi"
readLê entrada do usuárioread nome
cdMuda de diretóriocd /tmp
pwdMostra o diretório atualpwd
lsLista arquivosls -la
mkdirCria diretóriomkdir pasta
rmRemove arquivos ou pastasrm arquivo.txt
cpCopia arquivoscp a.txt b.txt
mvMove ou renomeia arquivosmv a.txt b.txt
catMostra o conteúdo de um arquivocat arquivo.txt
grepFiltra textogrep "erro" log.txt
cutCorta colunas de textocut -d':' -f1
awkManipula texto em colunasawk '{print $1}'
sedFaz substituições em textosed 's/teste/sucesso/g'
chmodMuda permissões de arquivoschmod +x script.sh
findProcura arquivosfind . -name "*.txt"
xargsPassa argumentos da entrada para comando`lsxargs rm`
basenameRemove caminho e extensãobasename /caminho/arq
dirnameRetorna o diretório de um caminhodirname /caminho/arq

Sobre indentação: seja humano, não gremlin

Shell Script não exige indentação... mas seu futuro eu exige.
Código sem indentação:

if [ "$x" = "1" ]; then echo "oi"; else echo "tchau"; fi

Código legível:

if [ "$x" = "1" ]; then
  echo "oi"
else
  echo "tchau"
fi

Boas práticas para não virar um "Script Monster"

1. Use set -euo pipefail

Logo após o #!/bin/bash, adicione:

set -euo pipefail
  • -e: para o script se qualquer comando falhar
  • -u: erro ao usar variável não definida
  • -o pipefail: captura falha em comandos encadeados com |

2. Use funções

Evite repetir código:

fazer_backup() {
  echo "Fazendo backup..."
  cp arquivo.txt backup/
}

3. Sempre use aspas em variáveis

echo "$arquivo"     # Correto
echo $arquivo       # Pode falhar com espaços ou caracteres especiais

4. Verifique se arquivos existem

if [ -f "$arquivo" ]; then
  echo "Arquivo encontrado!"
fi

5. Nomeie suas variáveis com clareza

Evite:

a=10
b=20

Prefira:

quantidade_usuarios=10
limite=20

Dica bônus: use ShellCheck

Use o https://www.shellcheck.net/ para revisar seus scripts.
Ele detecta erros, más práticas e possíveis falhas de segurança.

E o que NÃO fazer

#!/bin/bash
rm -rf /

Se você rodar isso, nem o backup vai querer falar com você.
Shell Script parece intimidador no começo, mas com um pouco de prática, organização e atenção aos detalhes, você pode escrever scripts robustos, legíveis e reutilizáveis. Com variáveis bem usadas, indentação clara, comandos úteis e algumas boas práticas, até o terminal vai te respeitar.
Comente ai qualquer duvida e complemente o post se achar importante.
Bons estudos.
Obrigado. :)

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas

Oi, Ronaldo! Como vai?

Agradeço por compartilhar.

Gostei da forma como você trouxe humor e clareza pra explicar conceitos importantes do Shell Script. Ficou muito bom o contraste entre a teoria e os exemplos práticos, isso ajuda bastante quem está começando. Além disso, a parte sobre boas práticas, como o uso do set -euo pipefail e o cuidado com variáveis, mostra atenção aos detalhes que fazem diferença no dia a dia.

Continue compartilhando esse tipo de conteúdo, pois ele enriquece as discussões e incentiva outros alunos a praticar.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Oi Lorena.
Obrigado mais uma vez...
A falta de interação no fórum entre alunos que estão no mesmo curso me lembra o universo:
"Vasto, cheio de possibilidades, mas assustadoramente silencioso".
Grato por seu feedback! :)