例如,要将整数UNIX时间戳转换为可读日期,可以使用date
实用程序。但是,不同平台上的语法不同:
date --date='@123456789'
date -r 123456789
我不确定Mac OS X,AIX,HP-UX和所有其他风格。
因此,整个系统的程序非常不同,即使具有不同的名称和使用语法。例如,它在Linux上是seq 1 10
,但它在BSD上是jot 10 1
。
我知道shell有一个POSIX标准(即sh
),但据我所知,所有其他实用程序都没有POSIX标准(例如,date
的联机帮助页Linux没有说明如何符合POSIX / SysV / BSD标准。
这个问题 - Portability between Unix shells - am I thinking about the issue correctly? - 解决了这个问题,但只涉及shell本身,而不是所有其他实用程序。
所以,我有两个问题:
date
,sed
,awk
等? 答案 0 :(得分:1)
date
等基本命令肯定有标准。然而,从几秒钟以来就没有时间支持"用它。
seq
和jot
,但使用shell脚本实现它们是微不足道的。
您正在寻找的最小子集或兼容性层是POSIX标准。看看http://pubs.opengroup.org/onlinepubs/9699919799/utilities/contents.html
答案 1 :(得分:1)
我甚至不确定这几天是否有资格作为答案,但对于这类事情,我强烈推荐O'Reilly's UNIX in a Nutshell,它可以很好地整理选项各种命令的各种UNIX版本。
book cover http://ecx.images-amazon.com/images/I/51RdK3fsT%2BL._SY344_BO1,204,203,200_.jpg