Může někdo seřadit tyto nástroje podle přenositelnosti? Která z těchto možností je jistá lze nalézt i na těch nejmenších *nix systémech? Je některý z nich 100% přítomen? Můj odhad je, že pořadí je následující:
- awk
- sed
- sh
- perl
I když si představuji, že existují systémy, které nevyužívají bourne shell, některé shell bude přítomen jako výchozí, bude to vždy na /bin/sh
? Pravděpodobně ne, pokud to není skořápka typu Bourne. Oba awk
a sed
mít stránky vysvětlující je ve specifikaci POSIX, takže pravděpodobně budou vždy přítomny. Je to tak?
Mohu si být jistý že se obojí nainstaluje na nějaký *nix? Včetně vestavěných systémů?
Přijatá odpověď:
Který ze sed, awk, perl a sh je nejpřenosnější?
sed
, sh
a awk
jsou přenosné podle specifikace POSIX, perl
není podporováno standardem.
Může někdo tyto nástroje seřadit podle přenositelnosti?
Pokud se budete držet vyhovujícího kódu, nemělo by existovat žádné pořadí přenositelnosti pro tři příkazy POSIX.
Která z nich se určitě najde i na těch nejmenších *nix systémech?
Tři POSIXové spolu s mnoha dalšími utilitami jsou povinné pro OS, aby byl POSIX. Existují však operační systémy, kterým některé z nich chybí kvůli minimalizaci nebo poskytují neúplné/nevyhovující implementace.
Ve skutečnosti většina (pokud ne všechny) svobodných a open source operačních systémů podobných Unixu by pravděpodobně neprošla procesem přizpůsobení, pokud by se o to pokusily, a stejně to nikdy nezkusí.
Je některý z nich 100% jistý, že je přítomen?
Překvapilo by mě, kdybych našel *nix jako OS bez shellu založeného na Bourne syntaxi, ale vše je možné, zvláště u vestavěných systémů.
Můj odhad je, že pořadí je následující:
Nějaký shell bude přítomen jako výchozí, bude to vždy v /bin/sh?
/bin/sh
je pravděpodobně shell rodiny syntaxe Bourne, ale není zaručeno, že bude kompatibilní s POSIX, a to ani v systémech kompatibilních s POSIX. Například je to /usr/xpg4/bin/sh
na Solaris 10 a starších, zatímco /bin/sh
je původní původní Bourne shell, který není POSIX.