Поскольку вы уже используетеbash
-специальный код, либо (предполагайте GNU grep
, либо совместимый):
find. -name '*.o3g' -print0 | grep -z pattern |
while IFS= read -rd '' file; do
process "$file"
read -n1 -p 'Press any key to continue' < /dev/tty
done
(где символ (обратите внимание, однако, что некоторые клавиши посылают более одного символа )считывается с управляющего терминала ).
Или, что лучше, так как это также позволяет избежать того, чтобы process
stdin был конвейером изgrep
:
while IFS= read -u 3 -rd '' file; do
process "$file"
read -n1 -p 'Press any key to continue'
done 3< <(find. -name '*.o3g' -print0 | grep -z pattern)
(где символ читается из немодифицированного стандартного ввода ).
См. также Почему зацикливание вывода find является плохой практикой? для других потенциальных проблем, связанных с обработкой find
вывода.
Здесь, может быть, вы можете просто сделать:
find. -name '*.o3g' -path '*pattern*' -ok process {} \;
См. также, чтобы избежать любого GNU-изма, кроме самого bash
:
find. -name '*.o3g' -exec bash -c '
for file do
[[ $file =~ pattern ]] || continue
process "$file"
read -n1 -p "Press any key to continue"
done' bash {} +
В списке процессов нет информации об окнах. Оконная система отделена от системы управления процессами. Управление процессами осуществляется Linux (ядром ). Работа с окнами выполняется X11 или Wayland как обычный пользовательский процесс.
Существует способ запросить у оконной системы список всех окон, их имена, видимость и другую информацию. Это, вероятно, будет то, что вам нужно. (Не помню как ).