← Administração Linux para operações
07 / 12 · 20 MIN

Shell: argumentos, pipelines e códigos de saída

Torna a intenção do script explícita ao lidar com caminhos e falhas.

Compreender o conceito

Uma variável expandida sem aspas em Bash pode sofrer separação em palavras e expansão de padrões. Um caminho com espaços deixa de ser um único argumento. Aspas duplas preservam normalmente o valor como um argumento, mantendo expansão da variável. Valores começados por hífen podem ser interpretados como opções; usa o fim de opções quando o comando o suporta.

Aplicar e decidir

Por omissão, o código de uma pipeline é o do último comando. pipefail altera esse resultado agregado, mas não desfaz efeitos nem substitui tratamento explícito de erros. set -e tem exceções contextuais; não deve ser tratado como uma prova de correção. Regista o que falhou e define o que pode ser repetido com segurança.

Aplicação no trabalho

Num script de exportação, preserva argumentos com espaços e trata valores iniciados por hífen segundo a interface do comando. Captura o estado relevante antes que outro comando o substitua. Com pipefail, uma falha intermédia pode chegar ao scheduler, mas ainda é necessário tratar ficheiros parciais, publicação e repetição. Ensaiar sucesso, falha e recuperação num ambiente controlado revela diferenças que uma execução bem-sucedida não mostra.

NA PRÁTICA

Num exemplo Bash, printf "%s\n" "$file" preserva espaços no valor. Um export falhado seguido de tee bem-sucedido pode parecer sucesso se só for observado o último código.

Armadilhas comuns

Assumir que aspas validam caminhos, tee propaga todas as falhas ou pipefail desfaz escritas.

Tópicos relacionados: Manutenção e recuperação demonstrada · Começar pelo contexto e preservar evidência

Leva esta ideia contigo

Aspas e códigos de saída são parte do contrato operacional do script.

Criar conta

Referência: bash(1): shell expansion and pipelines · DR Linux 2026.4; networking and Bash manuals reviewed 2026-10-01; cgroup v2 and upstream systemd manuals reviewed 2026-10-01; RHEL 10 examples; Linux man-pages 6.19; OpenSSL 3.5

Linux® é uma marca registada de Linus Torvalds. A dr.pt é uma plataforma de preparação independente e não está afiliada, associada, patrocinada, autorizada nem aprovada por Linus Torvalds. Os conteúdos e as perguntas são originais, não são perguntas oficiais de exame, e concluir os nossos testes não atribui nem garante qualquer certificação. Os nomes são usados apenas para identificar o tema. Todas as outras marcas pertencem aos respetivos titulares.