Я нашел ответ.
Я обновил ~ / .config / monitors.xml
и нашел VGA1
, который является моим телевизором, и установил правильные ширину
и высоту
(1408x792), и после перезапуска конфигурация была успешно применена.
Вам нужно
shopt -s extglob
внутри скрипта.
Ваша конфигурация bash предположительно включает это автоматически для интерактивных оболочек (возможно, потому, что вы загружаете пакет bash-Completion для контекстно-зависимого завершения); вам нужно включить его вручную внутри скриптов.
Также убедитесь, что ваш скрипт начинается с #! / Bin / bash
(или варианта вроде #! / Usr / bin / env bash
, в противном случае он может быть выполнен другая оболочка, не поддерживающая этот синтаксис.
Например, этот сценарий создаст несколько файлов, а затем удалит все, кроме двух, которые вы хотите сохранить:
$ cat x
#!/bin/bash
shopt -s extglob
touch f1 f2 f3 exec.js .git foo bar
echo Before: $(ls -A)
rm !(exec.js|.git)
echo After: $(ls -A)
В процессе выполнения:
$ bash x
Before: .git bar exec.js f1 f2 f3 foo x
rm: cannot remove '.': Is a directory
rm: cannot remove '..': Is a directory
After: .git exec.js
Обратите внимание, что вы получаете ошибки с .
и ..
; вы также увидите их в командной строке:
$ touch f1 f2 f3 exec.js .git foo bar
$ rm !(exec.js|.git)
rm: cannot remove '.': Is a directory
rm: cannot remove '..': Is a directory
Как совет, вы можете добавить
GLOBIGNORE=.:..
после shopt -s extglob
, чтобы избежать ошибки rm: cannot remove '.': Is a directory
.