Robert Elz wrote in <7989.1699564...@jacaranda.noi.kre.to>: | Date: Thu, 09 Nov 2023 21:04:28 +0100 | From: Steffen Nurpmeso <stef...@sdaoden.eu> | Message-ID: <20231109200428.8g9lz%stef...@sdaoden.eu> | || ash(1) and busybox ash(1) do not even support jobs -l in a function \ || (yet). | |That seems unlikely, ash based shells mostly don't care whether the \ |commands |they're running are in a function or not, except for those few commands for |which that is important (like return, local, etc). | |Are you sure that you're not seeing the effects of running jobs in a |subshell environment (in a command substitution) - where no jobs have |yet been created in that environment. Modern shells allow jobs (like |trap) there, as a way to get the parent shell's jobs (or traps), but |even now (in the latest drafts) POSIX does not require that jobs works |that way (it does for trap, in very limited cases).
That was taking me too literally. It seems monitor mode and all its tracked jobs are not available in a subshell, not even within { ; }. ... Hmm. Well have i done this afternoon: #?0|kent:tmp$ dash #?0|kent:tmp$ LESS= less t.rc & #?0|kent:tmp$ LESS= less t.sh & #?0|kent:tmp$ jobs -l [2] + 18950 Stopped (tty output) less t.sh [1] - 18948 Stopped less t.rc #?0|kent:tmp$ { jobs -l; } [2] + 18950 Stopped (tty output) less t.sh [1] - 18948 Stopped less t.rc #?0|kent:tmp$ ( jobs -l; ) #?0|kent:tmp$ listem() { > jobs -l > } #?0|kent:tmp$ listem [2] + 18950 Stopped (tty output) less t.sh [1] - 18948 Stopped less t.rc #?0|kent:tmp$ $( listem ) #?0|kent:tmp$ So i would have to use output redirection in order to avoid calling listem() in a $() construct. It seems the simple issue is about to become a monster. --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt)