shellcheck: "ulimit -HはPOSIX shではサポートされていません"

shellcheck: "ulimit -HはPOSIX shではサポートされていません"

shスクリプトの警告を修正するためにshellcheckを使用しています。スクリプトは、次のコマンドを使用してハードファイル記述子の制限を確認します。

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上のほぼすべてのシェル(Bash、Busybox、Dash、Ksh、mksh、yash、zsh)には、およびをサポートする組み込みulimitコマンドがあります。-H-S-n

Linux以外のシステムについてはよくわかりませんが、FreeBSD マニュアルページsh(1)また、OpenBSDでは次のように言及しました。/bin/shkshだと思います。、これもサポートします。

関連情報