私が実行すると仮定すると、time ./a.out
変数を介してPIDを取得できます。ところで、PIDはどのように取得しますか?time
$!
a.out
もちろん、出力を解析することはできますが、ps
よりエレガントなソリューションが必要です。
確認しましたが、man time
何も見つかりませんでした。
私が得た最も近いものでしたが、time (sleep 10 & echo $!)
四半期のために費やされた時間は基本的に10秒ではなくゼロでした。
ベストアンサー1
定義によると、a.out
これは子プロセスですtime
。time
親プロセスのpidも同様ですa.out
!以下は私がa.out
置き換えるテストですsleep 60
。
$ time sleep 50 & timepid=$!
$ aoutpid=$(pgrep -P $timepid)
$ ps -o ppid,pid,start,cmd w -p $$,$timepid,$aoutpid
PPID PID STARTED CMD
2065 2068 21:34:57 -bash
2068 3297 22:16:05 -bash
3297 3298 22:16:05 sleep 50
(注:はtime
実際にシェル組み込みコマンドなので、上記のコマンドはbash
!)