Pular para o conteúdo
Skillpedia
Código em geral48 mil · #3854

posix-shell-pro

Faz seu agente escrever scripts de forma simples e compatível com vários sistemas. Garante que o código funcione em diferentes ambientes Unix.

O que ela faz

Este agente de IA ajuda a criar scripts de shell que funcionam em praticamente qualquer sistema Unix/Linux. Ele garante que seus scripts sejam simples, seguros e compatíveis com sistemas mais antigos ou restritos.

Quando usar

  • ✓Ao escrever scripts que precisam rodar em muitos sistemas diferentes.
  • ✓Quando você quer garantir que seu script não use recursos modernos e específicos.
  • ✓Para criar scripts robustos e seguros que evitam erros comuns.

Exemplo do que pedir para a IA

“Crie um script POSIX sh que copie arquivos de um diretório para outro, mas apenas se o arquivo de destino não existir.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/posix-shell-pro/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/posix-shell-pro/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ele foca em usar apenas os comandos e recursos mais básicos e universais do shell POSIX. Isso significa evitar atalhos modernos que podem não existir em todos os sistemas.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill posix-shell-pro

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/posix-shell-pro/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Use esta habilidade quando

  • Trabalhando em tarefas ou fluxos de trabalho de shell POSIX profissional
  • Precisando de orientação, melhores práticas ou checklists para shell POSIX profissional

Não use esta habilidade quando

  • A tarefa não estiver relacionada a shell POSIX profissional
  • Você precisar de um domínio ou ferramenta diferente fora deste escopo

Instruções

  • Clarifique objetivos, restrições e entradas necessárias.
  • Aplique melhores práticas relevantes e valide os resultados.
  • Forneça etapas acionáveis e verificação.

Áreas de Foco

  • Conformidade POSIX estrita para máxima portabilidade
  • Scripting independente de shell que funciona em qualquer sistema do tipo Unix
  • Programação defensiva com tratamento de erros portátil
  • Análise segura de argumentos sem recursos específicos do bash
  • Operações de arquivo portáteis e gerenciamento de recursos
  • Compatibilidade multiplataforma (Linux, BSD, Solaris, AIX, macOS)
  • Testes com dash, ash e validação no modo POSIX
  • Análise estática com ShellCheck no modo POSIX
  • Abordagem minimalista usando apenas recursos especificados pelo POSIX
  • Compatibilidade com sistemas legados e ambientes embarcados

Restrições POSIX

  • Sem arrays (use parâmetros posicionais ou strings delimitadas)
  • Sem [[ condicionais (use apenas o comando [ test)
  • Sem substituição de processo <() ou >()
  • Sem expansão de chaves {1..10}
  • Sem palavra-chave local (use variáveis de escopo de função com cuidado)
  • Sem declare, typeset ou readonly para atributos de variável
  • Sem operador += para concatenação de strings
  • Sem substituição ${var//pattern/replacement}
  • Sem arrays associativos ou tabelas hash
  • Sem comando source (use . para "sourcing" de arquivos)

Abordagem

  • Sempre use o shebang #!/bin/sh para shell POSIX
  • Use set -eu para tratamento de erros (sem pipefail em POSIX)
  • Quote todas as expansões de variáveis: "$var" nunca $var
  • Use [ ] para todos os testes condicionais, nunca [[
  • Implemente a análise de argumentos com while e case (sem getopts para opções longas)
  • Crie arquivos temporários com segurança com mktemp e "traps" de limpeza
  • Use printf em vez de echo para toda a saída (o comportamento do echo varia)
  • Use . script.sh em vez de source script.sh para "sourcing"
  • Implemente o tratamento de erros com verificações explícitas de || exit 1
  • Projete scripts para serem idempotentes e suportar modos de "dry-run"
  • Use a manipulação de IFS com cuidado e restaure o valor original
  • Valide entradas com testes [ -n "$var" ] e [ -z "$var" ]
  • Termine a análise de opções com -- e use rm -rf -- "$dir" para segurança
  • Use substituição de comando $() em vez de backticks para legibilidade
  • Implemente "logging" estruturado com timestamps usando date
  • Teste scripts com dash/ash para verificar a conformidade POSIX

Compatibilidade e Portabilidade

  • Use #!/bin/sh para invocar o shell POSIX do sistema
  • Teste em vários shells: dash (padrão Debian/Ubuntu), ash (Alpine/BusyBox), bash --posix
  • Evite opções específicas do GNU; use apenas flags especificadas pelo POSIX
  • Lide com diferenças de plataforma: uname -s para detecção de SO
  • Use command -v em vez de which (mais portátil)
  • Verifique a disponibilidade de comandos: command -v cmd >/dev/null 2>&1 || exit 1
  • Forneça implementações portáteis para utilitários ausentes
  • Use [ -e "$file" ] para verificações de existência (funciona em todos os sistemas)
  • Evite /dev/stdin, /dev/stdout (não universalmente disponíveis)
  • Use redirecionamento explícito em vez de &> (específico do bash)

Legibilidade e Manutenibilidade

  • Use nomes de variáveis descritivos em UPPER_CASE para exportadas, lower_case para locais
  • Adicione cabeçalhos de seção com blocos de comentários para organização
  • Mantenha funções com menos de 50 linhas; extraia lógica complexa
  • Use indentação consistente (apenas espaços, geralmente 2 ou 4)
  • Documente o propósito da função e os parâmetros em comentários
  • Use nomes significativos: validate_input não check
  • Adicione comentários para "workarounds" POSIX não óbvios
  • Agrupe funções relacionadas com cabeçalhos descritivos
  • Extraia código repetido em funções
  • Use linhas em branco para separar seções lógicas

Padrões de Segurança e Proteção

  • Quote todas as expansões de variáveis para evitar divisão de palavras
  • Valide permissões de arquivo antes das operações: [ -r "$file" ] || exit 1
  • Sanitize a entrada do usuário antes de usá-la em comandos
  • Valide entrada numérica: case $num in *[!0-9]*) exit 1 ;; esac
  • Nunca use eval em entrada não confiável
  • Use -- para separar opções de argumentos: rm -- "$file"
  • Valide variáveis necessárias: [ -n "$VAR" ] || { echo "VAR required" >&2; exit 1; }
  • Verifique códigos de saída explicitamente: cmd || { echo "failed" >&2; exit 1; }
  • Use trap para limpeza: trap 'rm -f "$tmpfile"' EXIT INT TERM
  • Defina "umask" restritivo para arquivos sensíveis: umask 077

…

Perguntas frequentes

O que é 'shell POSIX'?

É um padrão para linguagens de script de linha de comando que garante que os comandos funcionem de forma semelhante em diferentes sistemas operacionais Unix-like (como Linux, macOS, BSD).

Por que evitar recursos modernos?

Recursos modernos podem não estar disponíveis em sistemas mais antigos, embarcados ou em configurações mínimas, o que quebraria seu script. O foco POSIX garante máxima compatibilidade.

O que são 'scripts defensivos'?

São scripts escritos com cuidado para antecipar e lidar com possíveis erros, como arquivos ausentes ou entradas inválidas, tornando-os mais confiáveis.

Detalhes

Descrição original do autor

Expert in strict POSIX sh scripting for maximum portability across Unix-like systems. Specializes in shell scripts that run on any POSIX-compliant shell (dash, ash, sh, bash --posix).

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3854
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas