On my Linux machine:
; zsh -c limit | wc -l
16
; bash -c 'ulimit -a' | wc -l
17
; ksh -c 'ulimit -a' | wc -l
20
; fish -c 'ulimit -a' | wc -l
16
; tcsh -c limit | wc -l
16
; es -c limit | wc -l
9
POSIX only requires 7 different resources be supported, but even dash manages to list 12!
es seems to have CPU, FSIZE, DATA, STACK, CORE, RSS, ... CORE again (a bug, I guess, should be MEMLOCK?), NOFILE, and NPROC.
It's missing the POSIX AS, and (on Linux, at least, based on getrlimit(2),) LOCKS, MSGQUEUE, NICE, RTPRIO, RTTIME, and SIGPENDING.
In addition, FreeBSD seems to have KQUEUES, NPTS, PIPEBUF, SBSIZE, SWAP, UMTXP, and VMEM (which apparently is treated the same as AS?)
NetBSD has NTHR, while AIX seems to have THREADS.
Haiku has NOVMON.
This is certainly a whole mess. zsh tries to yank it from system headers like we do with signals, while bash seems to hardcode everything it can possibly handle, along with some 50-ish lines of preprocessor junk just to deal with different names for the same thing.
On my Linux machine:
POSIX only requires 7 different resources be supported, but even
dashmanages to list 12!es seems to have CPU, FSIZE, DATA, STACK, CORE, RSS, ... CORE again (a bug, I guess, should be MEMLOCK?), NOFILE, and NPROC.
It's missing the POSIX AS, and (on Linux, at least, based on
getrlimit(2),) LOCKS, MSGQUEUE, NICE, RTPRIO, RTTIME, and SIGPENDING.In addition, FreeBSD seems to have KQUEUES, NPTS, PIPEBUF, SBSIZE, SWAP, UMTXP, and VMEM (which apparently is treated the same as AS?)
NetBSD has NTHR, while AIX seems to have THREADS.
Haiku has NOVMON.
This is certainly a whole mess. zsh tries to yank it from system headers like we do with signals, while bash seems to hardcode everything it can possibly handle, along with some 50-ish lines of preprocessor junk just to deal with different names for the same thing.