Что делает “$ {-#*i}”! = “$ -” средний?

Предположение, что Вам не нужен второй монитор, в то время как Ваш запуск Вашего приложения, имейте Вас рассмотренный отключением второго монитора (использование xrandr если Ваша установка поддерживает его) при выполнении игры?

Если Вы спрашиваете о приложении, Вы разрабатываете, я уверен, что можно запросить расширение XRandR или Xinerama (какой бы ни один X11 использует), и затем центрируйтесь соответственно. Большинство настольных сред уже поддерживает это (именно поэтому при максимизации окна, оно обычно заполняет только один экран).

37
15.05.2014, 19:29
2 ответа

$-[1124073] - это текущие флаги опций, устанавливаемые самой оболочкой, при вызове или использовании команды сборки [1124074]set[1124075]:

uname -a

"${-#*i}"[1124077] - это синтаксис для удаления строки: (из документации [1124078]POSIX[1124079])

head -n1 /etc/issue

${параметр#[слово]}

cat /proc/partitions

Удаление наименьшего шаблона префиксов. Слово должно быть расширено для получения шаблон. В результате расширения параметра получается параметр, при этом наименьшая часть префикса совпадает с рисунком. удалён. Если присутствует, то слово не должно начинаться с нецитируемого '#'.

grep MemTotal /proc/meminfo

${параметр##[слово]}

grep "model name" /proc/cpuinfo

Remove Largest Prefix Pattern (Удалить самый большой образец префикса). Слово должно быть расширено до Узор. В результате расширения параметра получается параметр, с наибольшая часть префикса совпадает с удаленным шаблоном.

hdparm -i /dev/sda
Так что [1124088]${-#*i}[1124089] удаляет самую короткую строку до первого [1124090]i[1124091] символа:

  1. В вашем случае [1124092], если ["${-#*i}" != "$-" ][1124093] проверяет, интерактивна ли ваша оболочка или нет.[1123685].

40
27.01.2020, 19:36
[1123664]Есть параметр оболочки [1124048]$-[1124049]. В моем случае:

${-}[1124051] - это то же самое, что [1124052]$-[1124053] - точно то же самое, что [1124054]${foo}[1124055] - то же самое, что [1124056]$foo[1124057].

#*i[1124059] - означает: Удалить (как можно меньше; здесь не имеет значения). от начала значения переменной до (включая) первого [1124060]i[1124061].

cat /proc/cpuinfo

free -m

cat /proc/version
Другими словами: [1124062][ "${-#*i}" != "$-" ][1124063] проверяет, есть ли [1124064]i[1124065] в значении переменной [1124066]$-[1124067], то есть проверяет, является ли оболочка интерактивной.

Другими словами, это запутанный и не совместимый с Борном способ написания:

sudo lshw
23
27.01.2020, 19:36

Теги

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