Bash
shellcheck:“在 POSIX sh 中,不支持 ulimit -H”
我正在使用 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 中獲取硬資源限制和設置軟資源限制的可移植方式是什麼?
好吧,嚴格來說,POSIX
ulimit
似乎只知道-f
選項(最大文件大小),所以我想答案是“無”。實際上,我在 Linux 上擁有的所有 shell(Bash、Busybox、Dash、Ksh、mksh、yash、zsh)都有一個
ulimit
支持-H
、-S
和-n
.我不確定非 Linux 系統,但FreeBSD 手冊頁
sh(1)
也提到了這些,並且在 OpenBSD 上,/bin/sh
似乎是 ksh,它也支持它們。