Bash

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

  • March 12, 2019

我正在使用 shellcheck 來修復 sh 腳本中的警告。該腳本使用以下命令檢查硬 fd 限制:

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 中獲取硬資源限制和設置軟資源限制的可移植方式是什麼?

好吧,嚴格來說,POSIXulimit似乎只知道-f選項(最大文件大小),所以我想答案是“無”。

實際上,我在 Linux 上擁有的所有 shell(Bash、Busybox、Dash、Ksh、mksh、yash、zsh)都有一個ulimit支持-H-S-n.

我不確定非 Linux 系統,但FreeBSD 手冊頁sh(1)也提到了這些,並且在 OpenBSD 上,/bin/sh似乎是 ksh,它也支持它們。

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