diff --git a/news/fix-jobs-index.rst b/news/fix-jobs-index.rst new file mode 100644 index 0000000000..9f735037bc --- /dev/null +++ b/news/fix-jobs-index.rst @@ -0,0 +1,23 @@ +**Added:** + +* + +**Changed:** + +* + +**Deprecated:** + +* + +**Removed:** + +* + +**Fixed:** + +* Jobs: fixed "index out of range" exception. + +**Security:** + +* diff --git a/xonsh/jobs.py b/xonsh/jobs.py index 097346a1b0..652967500b 100644 --- a/xonsh/jobs.py +++ b/xonsh/jobs.py @@ -344,9 +344,9 @@ def format_job_string(num: int) -> str: pos = "+" if tasks[0] == num else "-" if tasks[1] == num else " " status = job["status"] cmd = " ".join([" ".join(i) if isinstance(i, list) else i for i in job["cmds"]]) - pid = job["pids"][-1] + pid = f"({job['pids'][-1]})" if job["pids"] else "" bg = " &" if job["bg"] else "" - return f"[{num}]{pos} {status}: {cmd}{bg} ({pid})" + return f"[{num}]{pos} {status}: {cmd}{bg} {pid}" def print_one_job(num, outfile=sys.stdout):