我想知道是否有办法在任何符合POSIX标准的shell中获得自UNIX纪元以来的秒数,而无需使用perl之类的非POSIX语言,或使用非POSIX扩展(如GNU awk的strftime函数).
以下是我已经排除的一些解决方案......
date +%s
//不适用于Solaris
我见过一些shell脚本 建议之前,其解析输出date
,然后获得从格式化的公历日期秒,但他们似乎并没有采取像闰秒细节考虑在内.
GNU awk具有该strftime
功能,但这在标准中不可用awk
.
我可以编写一个调用该time
函数的小型C程序,但该二进制文件将特定于特定的体系结构.
是否有使用POSIX兼容工具的跨平台方式?
我很想放弃并接受对perl的依赖,这至少是广泛部署的.
perl -e'print time'//作弊(非POSIX),但应该适用于大多数平台
我正在尝试UID
1340816314
在Alpine Linux Docker容器内创建一个新用户,以便让UID
用户在主机上匹配特定用户.
问题是,adduser: number 1340816314 is not in 0..256000 range
即使我通过跟随adduser手册页重新定义UID_MAX
内部的值,我也面临着.我不认为它有任何影响,因为Alpine中的命令来自BusyBox./etc/login.defs
adduser
这是我尝试做的日志:
$ docker run -it --rm alpine:3.4 sh
/ # adduser -D -g '' -u 1340816314 user
adduser: number 1340816314 is not in 0..256000 range
/ # echo "UID_MAX 1340816314" > /etc/login.defs
/ # adduser -D -g '' -u 1340816314 user
adduser: number 1340816314 is not in 0..256000 range
/ # echo "UID_MAX 1340816315" …
Run Code Online (Sandbox Code Playgroud)