Tema: posix
-
Cómo escribir un script POSIX sh portable entre Linux, BSD, macOS y AIX
Un script que debe ejecutarse sin cambios en dash de Debian, en bash usado como sh en Linux, en FreeBSD, macOS y AIX tiene que ceñirse al Shell Command Language de POSIX y evitar las opciones de herramientas exclusivas de GNU; checkbashisms y una breve lista de diferencias entre comandos GNU y BSD detectan la mayoría de los fallos.
-
Variantes de regex: BRE/ERE, PCRE2, RE2, JavaScript, Python y .NET comparados
Los caracteres + ? | ( ) { } son literales o especiales según la herramienta use POSIX BRE o ERE. Además, algunos motores admiten lookaround y referencias inversas, mientras que RE2 los rechaza a propósito para garantizar coincidencia en tiempo lineal, y los grupos con nombre tienen tres grafías que cada motor acepta en combinaciones distintas.
-
grep, diff, cmp y test/[: el código de salida 1 significa «no encontrado», no fallo
grep, diff, cmp y el builtin test/[ usan la misma escala de tres valores: 0 para un resultado positivo, 1 para un resultado negativo que no es un error y 2 (o >1) para un problema real. Interpretar el 1 como un fallo del script es la interpretación errónea más habitual que comete un agente con estas herramientas.
-
«Text file busy» (ETXTBSY): escribir en un ejecutable en ejecución
ETXTBSY, que se muestra como «Text file busy», indica que se intentó abrir para escritura el archivo de un programa que se está ejecutando. El artículo explica cómo encontrar el proceso que lo mantiene abierto y por qué desplegar con rename en lugar de sobrescribir en el sitio evita el error y cualquier tiempo de inactividad.
Legible por máquina: JSON