Steam выглядит испорченным

Использованиеzsh:

zsh -c 'program *.txt(.^on)'

(.^on)— это zshмодификатор для шаблона *.txt, который позволяет ему соответствовать только обычным файлам (и.)и упорядочивает(o)результирующий список в обратном(^)лексикографическом порядке.(n).

Это запустит не -интерактивную zshоболочку, которая запустит programс сгенерированным списком имен файлов в качестве аргументов командной строки. Команда правильно обработает перестановку списка аргументов, даже если они содержат пробелы, символы новой строки и т. д. в именах файлов.

Пример:

$ touch {a..d}.txt
$ echo *.txt
a.txt b.txt c.txt d.txt
$ zsh -c 'echo *.txt(.^on)'
d.txt c.txt b.txt a.txt

Не-zshрешение:

set --
for fname in *.txt; do
    set -- "$fname" "$@"
done

program "$@"

или, используя именованный массив, например,. bash,

args=()
for fname in *.txt; do
    args=( "$fname" "${args[@]}" )
done

program "${args[@]}"

В обоих этих фрагментах кодамассив строится из имен, соответствующих шаблону *.txt. Каждое имя вставляется в массив впереди, поэтому в результате массив заканчивается последним именем.

В первом случае мы используем список позиционных параметров в качестве массива. Этот код должен работать в любойsh-подобной оболочке.


Если вам просто нужно, чтобы первое имя было последним в списке аргументов вашей программы, и вы можете позволить другим именам быть в том порядке, в котором они раскрываются, то следующее сделает это (в любомsh-вроде оболочка):

set -- *.txt
fname=$1
shift
program "$@" "$fname"

В качестве альтернативы, используяbash-специальный синтаксис и именованный массив,

args=( *.txt )
program "${args[@]:1}" "${args[0]}"

"${args[@]:1}"будет расширяться на все элементы массива args(с отдельными кавычками ), начиная с элемента 1и далее.

Повторное тестирование сecho:

$ args=( *.txt )
$ echo "${args[@]:1}" "${args[0]}"
b.txt c.txt d.txt a.txt
0
15.07.2020, 02:34
2 ответа

Ваша проблема похожа наhttps://github.com/ValveSoftware/steam-for-linux/issues/6593-окно Steam портится при изменении размера в мозаичном оконном менеджере

Название немного вводит в заблуждение :Далее в отчете об ошибке говорится, что это происходит, если включено аппаратное ускорение Steam, даже если вы не используете оконный менеджер плитки.

Предполагается, что это будет исправлено в последней бета-версии Steam.

1
18.03.2021, 23:19

У меня такая же система, но она не связана с паром. Приходится отключать igpu в настройках биоса и все будет нормально работать. Intel также предлагает отключить igpu при установке Linux в эту систему, чтобы избежать проблем.

0
18.03.2021, 23:19

Теги

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