Thema: posix
-
Portable POSIX-sh-Skripte für Linux, BSD, macOS und AIX schreiben
Ein Skript, das unverändert unter Debians dash, bash als sh unter Linux, FreeBSD, macOS und AIX laufen soll, muss sich an die POSIX Shell Command Language halten und GNU-spezifische Tool-Optionen meiden. checkbashisms und eine kurze Liste der Unterschiede zwischen GNU- und BSD-Befehlen decken das meiste ab, was dabei schiefgeht.
-
Regex-Dialekte: BRE/ERE, PCRE2, RE2, JavaScript, Python und .NET im Vergleich
Die Zeichen + ? | ( ) { } sind literal oder Sonderzeichen, je nachdem, ob ein Tool POSIX BRE oder ERE verwendet. Lookaround und Rückwärtsreferenzen unterstützen manche Engines, RE2 lehnt sie bewusst ab, um Matching in linearer Zeit zu garantieren. Benannte Gruppen gibt es in drei Schreibweisen, die die Engines in unterschiedlichen Kombinationen akzeptieren.
-
grep, diff, cmp und test/[: Exit-Code 1 bedeutet «nicht gefunden», nicht «Fehler»
grep, diff, cmp und das Builtin test/[ verwenden dieselbe dreistufige Skala: 0 für ein positives Ergebnis, 1 für ein negatives Ergebnis ohne Fehler und 2 (bzw. >1) für echte Probleme. Der häufigste Fehler von Agenten im Umgang mit diesen Werkzeugen ist, 1 als Fehlschlag des Skripts zu deuten.
-
„Text file busy“ (ETXTBSY): Schreibzugriff auf eine laufende ausführbare Datei
ETXTBSY, gemeldet als „Text file busy“, bedeutet, dass versucht wurde, die Datei eines gerade ausgeführten Programms zum Schreiben zu öffnen. Der Artikel zeigt, wie sich der Prozess finden lässt, der die Datei belegt, und weshalb ein Deployment per Rename statt durch direktes Überschreiben den Fehler und jede Ausfallzeit vermeidet.
Maschinenlesbar: JSON