~ и $ {USER} не работают в файлах .desktop

Ubuntu 12.04 32-bit

Я пытаюсь вручную создать файл .desktop для запуска приложения. Я хочу выполнить команду:

java -jar ~/.osbuddy/osbuddy.jar

Когда я запустил файл .desktop. Однако это не работает. Затем я попытался:

java -jar /home/${USER}/.osbuddy/osbuddy.jar

, который тоже не работал.

Наконец,

java -jar /home/branon/.osbuddy/osbuddy.jar

работал нормально. Я вручную выполнил все вышеперечисленные строки через терминал, и он запустил программу в порядке. Почему он не работает в файле .desktop?

Спасибо за любой свет, который вы можете сбросить. Это мой первый раз на AskUbuntu, поэтому я прошу прощения, если я игнорирую некоторые обычные правила этой формы. Если я нарушаю, пожалуйста, поправьте меня.

1
задан 8 April 2015 в 21:25

1 ответ

Как утверждает Флориан Диш, расширение тильды и расширение параметров не поддерживаются в пусковых установках (т. е. .desktop файлы). Но если вам нужно использовать их - или другие расширения оболочки - вы можете сделать это, запустив оболочку с оболочкой с аргументами командной строки, сообщающими оболочке запускать определенную команду и выйти.

Таким образом вы можете сделать свою команду:

sh -c 'java -jar ~/.osbuddy/osbuddy.jar'

Я использовал sh (который Как говорит Флориан Диш is dash), а не расширение тильды ) для эффективности и минимализма. Но если вам нужна расширенная функция, предоставляемая bash, вы можете использовать это вместо этого.

Если путь ~/.osbuddy/osbuddy.jar действителен для нескольких пользователей, и несколько пользователей будут использовать панель запуска, я рекомендую [ f8] (или, если хотите, bash -c). Однако, если это только для вас, и ваша главная цель - не набирать /home/brannon ... ну, передача команды в sh -c также требует дополнительного ввода.

0
ответ дан 23 May 2018 в 21:36
  • 1
    Благодарим вас за подробное объяснение - я был крайне не осведомлен о том, что на самом деле были sh и bash :) – keepbotting 8 April 2015 в 23:27

Другие вопросы по тегам:

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