Beim Ersetzen externer Befehle in einem Shell-Skript habe ich ein Array verwendet, um awk NF
loszuwerden.
Da ich nun von bash zu POSIX sh gewechselt bin, kann ich das Array nicht als richtig markieren:
%Vor% Ich benutze OpenBSDs, sh und es hat genau die gleiche Größe wie die ksh.
Wenn Sie oben auf /bin/sh
wechseln, scheint folgendes nicht zu funktionieren:
Wie konnte ich das obige Skript in /bin/sh
realisieren? (Beachten Sie, dass es funktioniert, wenn Sie bash mit --posix
aufrufen, das ist nicht was ich suche.)
Arrays sind nicht Teil der Spezifikation POSIX sh
.
Es gibt verschiedene andere Möglichkeiten, den letzten Gegenstand zu finden. Ein paar Möglichkeiten:
%Vor%oder:
%Vor%Der folgende Code funktioniert mit der Heirloom Bourne Shell :
%Vor% Beachten Sie, dass IFS
auf ein Leerzeichen gesetzt ist und es keine doppelten Anführungszeichen um $RANGE
gibt.