Запустите две команды одну за другой в bash через функцию, вызываемую с помощью eval.

Gnome + Wayland поддерживают это. См. Как настроить масштабирование монитора -на Wayland? .

Обратите внимание, что приложения, использующие XWayland (в большинстве случаев не -gnome и не -kde, такие как Firefox и т. д. )еще не -масштабируются неправильно.

Если коэффициент 2x вам не подходит, скоро будет поддержка дробного масштабирования . Это экспериментальный в Gnome 3.26.

Альтернативы:

-1
05.04.2021, 19:44
1 ответ

Проблемы синтаксиса в стороне, это то, как вы звонитеeval:

$(eval $(shuf -n1 -e "${SOURCES[@]}"))

Внешний $(...)означает, что eval происходит внутри подоболочки, затем текущая оболочка берет вывод и выполняет этот как команду.

Поскольку eval работает в подоболочке, содержимое переменной исчезнет вместе с подоболочкой.

Нужен ли вам eval? Команда shufсоздаст строку с тем же именем, что и функция. Вместо этого вы могли бы написать:

func=$(shuf -n1 -e "${SOURCES[@]}") && "$func"

или просто

$(shuf -n1 -e "${SOURCES[@]}")

В последнем случае мы действительно хотим, чтобы оболочка выполняла вывод shuf как команду

1
28.04.2021, 23:22

Теги

Похожие вопросы