Этот код perl работает для меня :например, findTab.pl Chrome Gmail
. Это заставляет экран переворачиваться и может менять вкладки в других окнах (он проверяет 12 раз на теории, что это должно оставить ваше окно на исходной вкладке, если оно ничего не находит, если у вас есть <5 вкладок в окне ).
Это не работает в моей системе Ubuntu, если вы не используете windowactivate
до key
; что-то связанное с очень старыми протоколами безопасности.
Я не думаю, что есть какие-либо гарантии, что он найдет, если нужно найти более одной вещи; Я подозреваю, основываясь на другом опыте xdotool, что при многократном использовании он может найти разные вещи.
Perl, вероятно, не лучший выбор для этого скрипта, но я не знаю bash.
#! /usr/bin/perl
## findTab.pl
## usage findTab appName tabName
use strict;
my $maxTabs=12;
my ($app, $tab) = @ARGV;
my @wins = split /\s+/, `xdotool search --desktop 0 --name $app`;
foreach my $win (@wins){
my $title;
for (my $i=0;$i<$maxTabs;$i++){
system ("xdotool windowactivate $win");
$title = `xwininfo -id $win | grep $tab`;
last if $title;
system("xdotool key --window $win ctrl+Page_Down");
}
last if $title;
}
Примерно так:
for i in {0..N}
do
dd if=input_s16le_audio.pcm bs=256 count=1 skip=$i | ./fpga_fft
done
Очевидно, вам нужно заменить цикл for чем-то, что останавливается после обработки всего файла (когда значение пропуска слишком велико, dd просто отправляет 0 байтов, так что вы не можете рассчитывать на плохой rc ).
Теперь, если у вас есть программа на C, должно быть сложно изменить ее, чтобы она зацикливалась на входном файле?
Использование GNU Parallel:
cat input_s16le_audio.pcm |
parallel --pipe --recend '' --block 256./fpga_fft
Если несколько fpga_fft
не могут работать параллельно, добавьте-j0