バージョン:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.4 LTS
Release: 20.04
Codename: focal
htopまたはps auxを使用してプロセスを調べると、最初のパイプの後にコマンドの残りの部分は表示されません。
私が実行したコマンドは次のとおりです。
ping -i 0.5 4.2.2.4 | while read row; do awk '{ $1=strftime("%Y-%m-%d %H:%M:%S",substr($0,2,10));print $0}' <<< $row;done | grep 'no answer' | tee log.txt > log_store.txt
ps auxの出力は次のようになります。
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Mar20 ? 00:00:00 /lib/systemd/systemd
root 23 1 0 Mar20 ? 00:00:01 /lib/systemd/systemd-journald
root 25 1 0 Mar20 ? 00:00:00 /usr/sbin/cron -f
root 28 1 0 Mar20 ? 00:00:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
root 31 30 0 Mar20 ? 00:00:24 ping -i 0.5 4.2.2.4 <--------------
ご覧のとおり、最初のパイプのping部分のみが表示されます。残りの部分を何とか見る方法はありますか?
答え1
の出力のどこかに現れるべきping
3つの後続のプロセス(awk
、grep
および)にパイプされています。tee
ps aux
bash構文(この場合はループ)はbashの内部構文であるため、出力
while
には表示されません。ps
ps -ef -H
(-H
Hierachyのような)はおそらくps aux
。