Posix

sed、awk、perl 和 sh 哪個最便攜?

  • December 4, 2017

有人可以按可移植性的順序排列這些工具嗎?即使在最小的 nix 系統上也肯定*能找到這些中的哪一個?他們中的任何一個是否 100% 肯定會在場?我的猜測是順序如下:

  1. awk
  2. perl

雖然我想有些系統不預設使用 bourne shell,但某些shell 將作為預設設置出現,那會一直在/bin/sh嗎?如果它不是伯恩型外殼,大概不會。兩者都有在 POSIX 規範中解釋它們的頁面awksed因此推測它們將始終存在。是這樣嗎?我可以確定兩者都將安裝在任何 *nix 上嗎?包括嵌入式系統?

sed、awk、perl 和 sh 哪個最便攜?

sedsh並且awk是由 POSIX 指定的可移植的,perl並不是沒有標準支持。

有人可以按可移植性的順序排列這些工具嗎?

如果您堅持使用兼容程式碼,則三個 POSIX 命令的可移植性應該沒有順序。

即使在最小的 *nix 系統上也肯定能找到這些中的哪一個?

三個 POSIX 以及許多其他實用程序對於作業系統是 POSIX 是強制性的。但是,由於最小化或提供不完整/不合格的實現而缺少其中一些的作業系統確實存在。

實際上,大多數(如果不是全部)免費和開源的 Unix 之類的作業系統如果嘗試通過一致性過程可能不會通過,而且他們也從未嘗試過。

他們中的任何一個是否 100% 肯定會在場?

我會驚訝地發現像 *nix 這樣的 OS 缺少基於 Bourne 語法的 shell,但一切皆有可能,尤其是對於嵌入式系統。

我的猜測是順序如下:預設情況下會出現一些 shell,它會一直在 /bin/sh 嗎?

/bin/sh很可能是 Bourne 語法家族 shell,但不保證符合 POSIX,即使是符合 POSIX 的系統。例如,它/usr/xpg4/bin/sh在 Solaris 10 和更早版本上,而/bin/sh舊的原始 Bourne shell 不是 POSIX。

引用自:https://unix.stackexchange.com/questions/123144