Bash awk仅在X时间后打印结果
我正在尝试制作一个脚本,用于打印脚本启动后启动的过程 剧本Bash awk仅在X时间后打印结果,bash,awk,Bash,Awk,我正在尝试制作一个脚本,用于打印脚本启动后启动的过程 剧本 a=$(date +"%T") while true do b=$(ps -eo pid,lstart,cmd | awk '{print $1,$5,$7}') log=$(awk -v A=$a '{ for (i=A; i<=NF; i++) } ' <<< $b) echo $b sleep 2 clear
a=$(date +"%T")
while true
do
b=$(ps -eo pid,lstart,cmd | awk '{print $1,$5,$7}')
log=$(awk -v A=$a '{ for (i=A; i<=NF; i++) } ' <<< $b)
echo $b
sleep 2
clear
done
因为这些是脚本生成脚本后唯一正在运行的过程
time=$(date +"%T")
date=$(date +"%e")
while true
do
b=$(ps -eo pid,lstart,cmd | awk -v A="$time" -v B="$date" '{ if ( A <= $5 && B <= $4 ) print $1,$4,$5,$7;}')
echo "$b"
sleep 2
clear
done
双引号中可能包含空格的变量为什么要调用awk两次,一次填充
b
,然后使用b
填充log
?只需将ps
输出传输到1 awk脚本。你是对的,只是太模糊而无法更改,因为一开始我就是这样做的
10969 6 13:02:19 /usr/bin/python3
10979 6 13:02:23 bash
10980 6 13:02:23 ps
10981 6 13:02:23 awk
time=$(date +"%T")
date=$(date +"%e")
while true
do
b=$(ps -eo pid,lstart,cmd | awk -v A="$time" -v B="$date" '{ if ( A <= $5 && B <= $4 ) print $1,$4,$5,$7;}')
echo "$b"
sleep 2
clear
done
10969 6 13:02:19 /usr/bin/python3
10979 6 13:02:23 bash
10980 6 13:02:23 ps
10981 6 13:02:23 awk