jobsコマンドの出力で変数を拡張する方法

jobsコマンドの出力で変数を拡張する方法

$i以下の出力に示すように、出力の変数は背中に展開ps auxされますsleep 1。同じことをするsleep 2方法はありますか?出力zshでは、すべてのコマンドの名前は同じです(例:。jobssleep $i

$ for i in {1..10}; do sleep $i& done; ps aux | grep sleep; jobs
[6] 1630
[7] 1631
[8] 1632
[9] 1633
[10] 1634
[11] 1635
[12] 1636
[13] 1637
[14] 1638
[15] 1639
root      1630  0.0  0.0   5224   684 pts/3    SN   10:06   0:00 sleep 1
root      1631  0.0  0.0   5224   684 pts/3    SN   10:06   0:00 sleep 2
root      1632  0.0  0.0   5224   744 pts/3    SN   10:06   0:00 sleep 3
root      1633  0.0  0.0   5224   744 pts/3    SN   10:06   0:00 sleep 4
root      1634  0.0  0.0   5224   748 pts/3    SN   10:06   0:00 sleep 5
root      1635  0.0  0.0   5224   752 pts/3    SN   10:06   0:00 sleep 6
root      1636  0.0  0.0   5224   680 pts/3    SN   10:06   0:00 sleep 7
root      1637  0.0  0.0   5224   748 pts/3    SN   10:06   0:00 sleep 8
root      1638  0.0  0.0   5224   748 pts/3    SN   10:06   0:00 sleep 9
root      1639  0.0  0.0   5224   748 pts/3    SN   10:06   0:00 sleep 10
root      1641  0.0  0.0   6144   880 pts/3    S+   10:06   0:00 grep --color=auto sleep
[6]    running    sleep $i
[7]    running    sleep $i
[8]    running    sleep $i
[9]    running    sleep $i
[10]    running    sleep $i
[11]    running    sleep $i
[12]    running    sleep $i
[13]    running    sleep $i
[14]  - running    sleep $i
[15]  + running    sleep $i

乾杯!

ベストアンサー1

そうではありませんので参考にしてくださいプロセスジョブはフォアグラウンドに配置されますが、ジョブはシェルコマンドで構成されます。このコマンドは、複数のプロセスを並列に( のようにsleep 10 | sleep 20 &)開始するか、順番に( のようにfor i in {1..10}; do sleep $i; done &)開始する複合コマンドです。

これらの各プロセスは、次に、より多くのプロセスを開始するか(まだタスクの一部ですがzsh直系の子孫ではないため不明)、レポートするパラメータのリストを変更できますps(たとえば、そのプロセスをsh -c 'exec env sleep 10'実行してから、両方とも同じプロセスから)または可能です。shenvsleep去る職業(新しいプロセスグループリーダーになる)。

各ジョブについて、そのジョブのプロセスのパラメーターのリストを表示したいように聞こえます。

たぶん、次のようなものがあります。

for job state ("${(@kv)jobstates}") {
  pgid=${${state%%=*}##*:}
  echo Job $job:
  pgrep -ag $pgid
}

あなたの例では、次のようなものを提供します。

Job 2:
26590 sleep 1
Job 3:
26591 sleep 2
Job 4:
26592 sleep 3
Job 5:
26593 sleep 4
Job 6:
26594 sleep 5
Job 7:
26595 sleep 6
Job 8:
26596 sleep 7
Job 9:
26597 sleep 8
Job 10:
26598 sleep 9
Job 11:
26599 sleep 10

おすすめ記事