Я получаю следующее исключение при открытии терминала. Как решить эту ошибку:
bash: /etc/profile.d/proxy-globalmenu.sh: line 1: syntax error in conditional expression
bash: /etc/profile.d/proxy-globalmenu.sh: line 1: syntax error near `]'
bash: /etc/profile.d/proxy-globalmenu.sh: line 1: `if [[ "$DESKTOP_SESSION" = "cinnamon" ] || ["$DESKTOP_SESSION" = gnome"] && [ -z "$UBUNTU_MENUPROXY" ]]; then'
[snoop@lenovo ~]$
Обратите внимание, что я обнаружил эту ошибку после установки расширения Global Menu Gnome.
решение1
- Это не исключение. Это ошибка.
- Насколько я понимаю, файл, в котором произошел сбой (
/etc/profile.d/proxy-globalmenu.sh
), не из Fedora.
Узнайте, откуда это взялось, и сообщите им. Если это было создано вами, просто исправьте это, добавив пробелы внутри []
и добавьте недостающую кавычку. От
["$DESKTOP_SESSION" = gnome"]
к
[ "$DESKTOP_SESSION" = "gnome" ]
решение2
Спасибо всем, кто принял участие, извините за эту ошибку.https://github.com/lestcape/Gnome-Global-AppMenu/commit/10e8494e411db3c4f0ab1f7de6999743d8cabd8e
Меню Dbus infreestructure запускается внутри сеансовой шины, а не внутри системной шины. Итак, то, что делает этот скрипт (в сочетании со строкой, которую я добавляю в файл /etc/environment), — это управление всеми корневыми приложениями, которые запускаются вне сеанса пользователя, поскольку они теряют строку меню, но расширение не может захватить меню Dbus в этом случае. С помощью этого скрипта мы можем сбросить переменную среды UBUNTU_MENUPROXY из всех корневых приложений, предотвращая потерю ими строки меню при запуске.