Запуск xterm без рамки/декорации в X11/MWM

!(year % 4)в арифметическом контексте будет сначала принимать результат year % 4, давая значение от 0 до 3. Если значение равно 0(yearкратно 4 ), тогда результатом всей операции будет 1 (!0), иначе !1, !2или !3. Все они оцениваются как 0.

Это стандартная практика для целочисленного логического вычисления в большинстве языков.

Операция, такая как 0 && 3, является ложной, поскольку целочисленный нуль является ложным при логическом арифметическом вычислении.

Код выхода команды (( 10 > 6 ))равен нулю. Это отличается от того, что вы получаете на выходе, например.echo "$(( 10 > 6 ))"(что равно 1 ). Код выхода сигнализирует "успех" или "неудача". Тест был проведен успешно, поэтому он возвращает ноль. Не могли бы вы использовать сравнение в арифметическом контексте,его значение будет равно 1:

(( var = 10 > 6 ))
echo "$var"   # prints 1

!вне арифметического контекста работает то же самое. Он превращает ноль в 1, а не -ноль в ноль. Интерпретация этого в оболочке будет другой, хотя ноль означает "успех", а не "логическую ложь" (это может не показаться странным, если вы привыкли думать о оболочке утилиты «не дают сбоев», а не «успешны» ).

grep -q -e PATTERN file && echo 'grep did not fail (and found PATTERN)'

! grep -q -e PATTERN file && echo 'grep failed (and did not find PATTERN)'

Нулевой код возврата сигнализирует об «успехе» в Unix, поскольку никакой дополнительной информации передавать не нужно.

Сбой определяется ненулевым -кодом выхода. Характер сбоя передается фактическим значением кода выхода. Допустимые коды отказа: 1 -127. Значение этих кодов должно быть задокументировано в руководстве по утилите. Вышеупомянутые статусы выхода предназначены для завершения работы утилиты по сигналу.

1
26.05.2020, 20:34
1 ответ

На справочной странице mwm описано, как можно установить декорации клиента с помощью строки ресурсов в файле ~/.mwmrc, например

 Mwm*XTerm.clientDecoration: none

который соответствует всем xterms. Вместо имени класса XTermвы можете использовать имя, которое вы даете конкретным экземплярам xterm при их запуске, например xterm -name nodeco...и конфигурациюMwm*nodeco.clientDecoration: none

2
18.03.2021, 23:32

Теги

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