После перезапуска ibus нельзя использовать его в приложении Wine

Это пустая строка.

Это то же самое, что и:

a=''

Или

a=""

Или

a=$''

Или, если это имеет значение:

a=''""$''

Те '', "", и $'...' заключают в кавычки операторы оболочки. Когда вы делаете:

a=''

Вы присваиваете $a не строку, состоящую из двух одинарных кавычек, а пустую строку. Эти '' лишние, так как внутри них ничего нет, но это может сделать ваш код немного более разборчивым (пояснить, что вы действительно намеревались присвоить пустую строку).

Чтобы назначить литерал '' на $a, вам нужно будет заключить в кавычки такие специальные символы, как:

a="''" a=\'\' a=$'\'\'' a="'"\'

Ваша тестовая команда недействительна. В

[ $a = ]

Поскольку вы забыли заключить в кавычки $a, оператор split+glob применяется к $a. Поскольку $a пусто (но это было бы то же самое, если бы оно содержало только пробелы или новые строки со значением по умолчанию $IFS), это приводит к тому, что в [ команда.

Таким образом, все аргументы [ получают [, = и ]. Для [ это проверка, чтобы определить, является ли = непустой строкой и возвращает ли она true.

Здесь вам нужно передать эти аргументы команде [:

  1. [
  2. содержимое $a, для которого вам нужна "$a"
  3. =
  4. пустая строка. Для чего вам нужно '' или ""...Отсутствие передачи будет означать, что аргумент [] не передается, поэтому 4-й аргумент будет закрывающим .
  5. ]

Так должно быть:

if [ "$a" = '' ]; then echo '$a is empty'; fi

Или:

if [ -z "$a" ]; then echo '$a is empty'; fi
1
19.07.2016, 05:32
2 ответа

Наконец, я нашел решение.

Решение

Запустите ibus-setup , затем выберите «Да», когда появится подсказка, запускать ли ibus.

Таким образом, винное приложение могло также использовать ibus.


Советы

Раньше я использовал ibus-daemon & для запуска ibus, а Wine не мог его использовать.

Не знаю, какой трюк сделал ibus-setup .

0
28.01.2020, 01:14

Если кому-то интересно, добавление опции "--xim" в настройку ibus -работает для меня. Это обнаруживается при изучении исходного кода main.py установки ibus -. Это именно тот «трюк», о котором упоминал @Eric Wang (, прежде всего спасибо за подсказку ).

Запуск Fedora 31 ibus -1.5.21 -3.fc31, вино -постановка 3.21 и 4.20.

Кстати, идея запуска демона ibus -через установку ibus -больше не работает; теперь закрытие установки ibus -также приведет к завершению работы демона ibus -. Рассматриваемый коммит — этоhttps://github.com/ibus/ibus/commit/32572618cdcc36162b5769eb4c71964db9734061«bus :Exit ibus -daemon with parent’s death».

0
28.01.2020, 01:14

Теги

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