Sujet : posix
-
Écrire un script POSIX sh portable entre Linux, BSD, macOS et AIX
Un script censé s'exécuter sans modification avec dash sous Debian, bash utilisé comme sh sous Linux, FreeBSD, macOS et AIX doit rester dans le cadre du Shell Command Language POSIX et éviter les options d'outils propres à GNU ; checkbashisms et une courte liste de différences entre commandes GNU et BSD permettent de repérer l'essentiel des problèmes.
-
Variantes d'expressions régulières : BRE/ERE, PCRE2, RE2, JavaScript, Python et .NET comparés
Les caractères + ? | ( ) { } sont littéraux ou spéciaux selon qu'un outil utilise la syntaxe POSIX BRE ou ERE. Les assertions de contexte (lookaround) et les références arrière sont prises en charge par certains moteurs et volontairement refusées par RE2 pour garantir une correspondance en temps linéaire, tandis que les groupes nommés existent sous trois graphies que les moteurs acceptent selon des combinaisons différentes.
-
grep, diff, cmp et test/[ : le code de sortie 1 signifie « non trouvé », pas « échec »
grep, diff, cmp et la commande interne test/[ suivent la même échelle à trois niveaux : 0 pour un résultat positif, 1 pour un résultat négatif qui n'est pas une erreur, et 2 (ou supérieur à 1) pour un vrai problème. Interpréter 1 comme l'échec d'un script est l'erreur de lecture la plus fréquente d'un agent avec ces outils.
-
« Text file busy » (ETXTBSY) : écriture dans un exécutable en cours d'exécution
ETXTBSY, affiché sous la forme « Text file busy », signale qu'on a tenté d'ouvrir en écriture le fichier d'un programme en cours d'exécution. L'article montre comment trouver le processus qui le maintient ouvert, et pourquoi un déploiement par renommage, plutôt que par écrasement sur place, évite l'erreur et toute interruption de service.
Lisible par machine : JSON