如果我jobs -l
在命令提示字元下運行,它會顯示正在運行的作業的狀態,但如果我在檔案 ./tmp.sh 下運行
#! /bin/bash
jobs -l
它顯示空輸出。
這是為什麼?
答案1
jobs
顯示職位由目前 shell 管理。您的腳本在自己的 shell 內執行,因此jobs
只會顯示由腳本的 shell 管理的作業...
若要查看實際效果,請運行
#!/bin/bash
sleep 60 &
jobs -l
要查看有關在腳本內部的 shell 腳本之前啟動的「作業」的信息,您需要將它們視為常規進程,並使用ps
etc。如果有的話)透過使用$PPID
腳本內的變量,並尋找共享相同父PID的進程。