Tema: posix
-
Como escrever um script POSIX sh portável entre Linux, BSD, macOS e AIX
Um script que deve rodar sem alterações no dash do Debian, no bash-como-sh de uma máquina Linux, no FreeBSD, no macOS e no AIX precisa ficar dentro da Shell Command Language do POSIX e evitar flags exclusivas do GNU; o checkbashisms e uma lista curta de diferenças entre comandos GNU e BSD pegam a maior parte do que quebra.
-
Variantes de regex: BRE/ERE, PCRE2, RE2, JavaScript, Python e .NET lado a lado
Os caracteres + ? | ( ) { } alternam entre literais e especiais conforme a ferramenta use POSIX BRE ou ERE. Lookaround e backreferences são suportados por alguns motores e rejeitados de propósito pelo RE2 para garantir casamento em tempo linear, e os grupos nomeados têm três grafias que cada motor aceita em combinações diferentes.
-
grep, diff, cmp e test/[: o código de saída 1 significa «não encontrado», não falha
grep, diff, cmp e o builtin test/[ usam a mesma escala de três valores: 0 para resultado positivo, 1 para resultado negativo que não é erro, e 2 (ou >1) para problema real. Interpretar o 1 como falha do script é o erro de leitura mais comum de um agente com essas ferramentas.
-
"Text file busy" (ETXTBSY): escrita em um executável em execução
ETXTBSY, exibido como "Text file busy", indica que se tentou abrir para escrita o arquivo de um programa que está em execução. O artigo mostra como encontrar o processo que mantém o arquivo aberto e por que fazer o deploy por rename, e não por sobrescrita direta, evita o erro e qualquer indisponibilidade.
Legível por máquina: JSON