Если Вы действительно хотите имя каталога сценария оболочки, который выполняется:
script_dir="$(dirname -- "$(readlink -f -- "$0")")"
Да, это - немного cludgy, но это безопасно.
Если Вы хотите текущую оболочку, можно попробовать предложение @MichaelMrozek использования $SHELL
.
это - главным образом комментарий, но могло стать ответом. нам действительно нужно больше информации, чтобы смочь помочь Вам.
отправьте:
set
при использовании удара),~/Desktop
) иfile /opt/the/programm/youre/attempting/to/run
Дикая попытка ответа без любой вышеупомянутой информации:
Ваше программное обеспечение, установленное в /opt/...
не статически связанный двоичный файл, но требует некоторых библиотек, которые также установлены ниже/, выбирают, но Ваша система не знает для поиска этого directoy необходимые библиотеки. Один способ зафиксировать это устанавливает LD_LIBRARY_PATH
переменная для включения каталога в / выбирает.
Вы по всей вероятности не указывали определенный путь, и двоичный файл поэтому ищется с помощью переменной $PATH.
Кажется, что Ваше местоположение "/opt/..." содержится в Вашем ПУТИ оболочек, но не в Вашем пути средств запуска. Это, вероятно, потому что Вы устанавливаете его в файле конфигурации Вашей оболочки, как .bashrc.
Самое легкое решение просто указывает полный путь в Вашем средстве запуска, т.е./opt/path/to/your/binary.
xlogo
в начале Вашего сценария, для проверки самого сценария запускается.
– michas
22.01.2013, 13:47
Попробуйте указать путь к Exec прямо в файле рабочего стола
Обходной путь Я обнаружил, что вызываю терминал -прямо из панели запуска
Exec=mate -терминал --path/do/your/script
Вы можете редактировать файл рабочего стола с помощью vi. Эта проблема заставила меня некоторое время ходить по кругу.
Если у вас не установлен mate, вы можете сделать sudo apt install mate -терминал
Затем после установки нажмите «Изменить», а затем «Настройки профиля». установите такие параметры, как шрифт, цвета, колокольчик, курсор и т. д.
Это возможно только в некоторых версиях Linux. Убунту нет.
Надеюсь, это поможет...
Обновление
Похоже, это исправлено в Mint -19.2. Если вы уйдете
Exec=mate-terminal -- /path/do/your/script
Вы откроете два терминальных сеанса. С 19.2 вернитесь к
Exec=/path/do/your/script
В любом случае убедитесь, что режим файла равен 755, чтобы он был исполняемым.
Не уверен, что это применимо ко всем дистрибутивам, но в Ubuntu 20.04 вы можете проверить свой файл.desktop с помощьюdesktop-file-validate </path/to/myapp.desktop>