Не совсем ясно, что вы ищете, но из того, что я получаю, это то, что у вас есть 6 каталогов, но в каждом каталоге есть файлы, названные аналогичным образом, с номерами в их конце. Тогда вы можете сделать это следующим образом:
for arg
do
for i in {1..201..5}; do
grep "Pitch" "$arg-$i" | cut -d" " -f25
done > $arg/pitch.txt
echo "========Pitch==========="
cat $arg/pitch.txt
done
Это должно сработать:
xrandr --listactivemonitors | grep <BBB> >/dev/null && xrandr --output <BBB> --off || xrandr --output <BBB> --right-of <AAA> --mode 1920x1080
Пояснение:
xrandr --listactivemonitors
печатает только те мониторы, которые в данный момент включены. grep <BBB> >/dev/null
Поиск в предыдущем выводе имени монитора, который мы хотим переключить. Если он найден, grep вернет код выхода, который интерпретируется оболочкой как истинный. Если он не найден, он вернет код выхода, который интерпретируется оболочкой как false. Вывод отправляется в /dev/null, чтобы не загромождать экран. && xrandr --output <BBB> --off
Если grep найдет монитор в списке активных мониторов, то он запустится, отключив монитор. Но если grep завершился с ложным кодом выхода, то это не будет выполнено, потому что независимо от того, что он оценивает, логическое предложение and в целом уже известно как ложное. || xrandr --output <BBB> --right-of <AAA> --mode 1920x1080
Если grep не находит его, то выполняется этот пункт, включая монитор. Он выполняется, поскольку предыдущее предложение(grep... && xrandr...
)оценивается как ложное. Чтобы узнать, верно ли это логическое или предложение, оболочка должна оценить правую часть. С другой стороны, если левая сторона -уже оценена как истина, тогда нет необходимости оценивать правую сторону -, поэтому это не будет выполнено. Вот краткое описание потока управления, опосредованного логическими условиями.
Если вы не хотите иметь под рукой tmp-файл, когда в этом нет крайней необходимости, попробуйте этот(LVDS-1
:дисплей ноутбука,VGA-1
:внешний монитор):
#!/bin/sh
switchDisplay() {
/usr/bin/xrandr --auto && /usr/bin/xrandr --output "$1" --off
}
case "$0" in
*-off)
switchDisplay "VGA-1";
;;
*-on)
switchDisplay "LVDS-1";
;;
*-toggle)
### Debian Buster xrandr man page is missing critical information.
### xrandr --listactivemonitors
### Monitors: 1
### 0: +VGA-1 1920/509x1080/286+0+0 VGA-1
/usr/bin/xrandr --listactivemonitors | /bin/grep -q "VGA-1" 1>/dev/null 2>&1
if test "$?" -eq 0; then
switchDisplay "VGA-1"; ### VGA active, turn it off.
else
switchDisplay "LVDS-1"; ### VGA inactive, turn it on.
fi;
;;
esac;
Скрипт называется ext-on
в $PATH
(, т.е.~/.local/bin
)и ext-off
, ext-toggle
являются символическими ссылками на расширение -вкл. Адаптируйтесь к вашим потребностям.
Удобство для пользователей i3wm с комбинацией клавиш Fn+
-, добавить в~/.config/i3/config
:
bindsym XF86Display exec --no-startup-id ~/.local/bin/ext-toggle
Работает как шарм. Никогда не подводил меня ;)
ура