Bug #1397

jobs -l output inconsistency when called from script

Added by Beket about 5 years ago. Updated about 5 years ago.

Status:NewStart date:
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:-
Target version:-

Description

Salute.

The jobs(1) utility gives different output when called from a script and when
from an interactive shell.

[beket@voyager ~] cat testjobs.sh
#!/bin/sh
sleep 30 &
jobs -l
[beket@voyager ~] sh testjobs.sh
[1] + 10005 Running
[beket@voyager ~] sleep 30 &
[1] 10006
[beket@voyager ~] jobs -l
[1]+ 10006 Running sleep 30 &
[beket@voyager ~]

It is not clear whether the jobs(1) should work at all inside a script. POSIX
says that since it doesn't fall into the 'special' built-in category a new
environment (subshell?) would be created upon its invocation. Even this is true,
the jobs aren't specific to the shell environment, so they should be visible to
jobs(1). And in any case, the command should either print nothing or print all
the fields.

NetBSD 5.0:
$ sh testjobs.sh
[1] + 27159 Running sleep 30

SunOS 5.10:
tuxillo@solaris$ /usr/xpg4/bin/sh testjobs.sh
[1] + 11754 Running <command unknown>

FreeBSD: same as us. (kindly reported by vstemen at #dragonflybsd).

Any thoughts ?

Best regards,
Stathis

Also available in: Atom PDF