shellcheck:“在 POSIX sh 中,不支持 ulimit -H”

shellcheck:“在 POSIX sh 中,不支持 ulimit -H”

我正在使用 shellcheck 来修复 sh 脚本中的警告。该脚本使用以下命令检查硬文件描述符限制:

ulimit -H -n

它通过以下方式设置软 fd 限制:

ulimit -n "$MAX_FD"

这会生成 shellcheck 警告:

In POSIX sh, ulimit -H is not supported. [SC2039]

In POSIX sh, ulimit -n is not supported. [SC2039]

在 POSIX sh 中获取硬资源限制和设置软资源限制的可移植方法是什么?

答案1

嗯,严格来说,POSIXulimit似乎只知道-f选项(最大文件大小),所以我想答案是“无”。

实际上,我在 Linux 上拥有的所有 shell(Bash、Busybox、Dash、Ksh、mksh、yash、zsh)都有一个ulimit支持-H-S和 的内置命令-n

我不确定非 Linux 系统,但是FreeBSD 手册页sh(1)还提到了这些,在 OpenBSD 上,/bin/sh似乎是 ksh,这也支持他们。

相关内容