Это начало улучшенной версии. Пока что я изменил его на:
grep
s ( awk
может выполнять сопоставление регулярных выражений) ps
options ps
output #!/bin/bash
bench_run() {
ps -u "$USER" -o time,args | awk "/simulator/ {
time=\$1
bench=\$37
start=match(bench, /throughput/)
start+=(RLENGTH+1)
end=match(bench, /base/)
printf ("%s %s\n", time, substr(bench, start, end-start-1))
}
"
}
bench_run
Вот версия, которая использует ] sed
#! /bin/sh
watch 'ps -u "$USER" -o time,args |
sed -n -e "/[s]imulator/ s/\([^ ]*\) .*\(throughput.*\)base.*/\1 \2/ p"'
Я использовал одинарные кавычки '
вокруг команды watch, поэтому я использовал двойные кавычки "
внутри команды sed.
Если simulator
- полное имя процесса, вы можете использовать:
#! /bin/sh
watch 'ps -o time,args -C simulator |
sed -n -e "s/\([^ ]*\) .*\(throughput.*\)base.*/\1 \2/ p"'
Как упоминал @user1934428 , вы можете явно воссоздать хеш-таблицу, запустив rehash
. Чтобы не делать это вручную, поместите это в свойzshrc
:
zstyle ":completion:*:commands" rehash 1
Вы можете узнать больше о zstyle
на справочной странице zshmodule
, а сами стили описаны в zshcompsys
.