Опция “-e” удерживается от использования и могла бы быть удалена в более поздней версии терминала гнома в Ubuntu 18.04

Этот заголовок имеет дублированный вопрос и подтвердил как ошибка. Но это было в Ubuntu 17, мой - Ubuntu 18.04 LTS. Таким образом, я предполагаю, что ошибка в старом вопросе исправлена. Ошибка я все еще встречаюсь с ним, таким образом, вот моя проблема:

Файл disk.desktop>>

[Desktop Entry]
Name=Disk Manager
Comment=Open df cmd in Terminal
Icon=harddisk
Type=Application
Categories=Utility;Management;
Keywords=disk; manager; terminal;
StartupNotify=true
Exec=gnome-terminal -t "Disk Manager" --hide-menubar -e "df -h --output=source,used,size,avail,target -x devtmpfs -x tmpfs -x squashfs"

Звезда находится в последней строке:
gnome-terminal -t "Disk Manager" --hide-menubar -e "df -h --output=source,used,size,avail,target -x devtmpfs -x tmpfs -x squashfs"

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

Если я удаляю все его аргументы кроме -h, это работает несколько раз. Если я работаю df приложение в рабочем терминале, это работает очень хорошо. Так мои деньги на отказе терминала гнома.

Я решил, копируют мою целую команду в рабочий терминал. И результатом является шмуцтитул:

# Option “-e” is deprecated and might be removed in a later version of gnome-terminal.
# Use “-- ” to terminate the options and put the command line to execute after it.

Так как я не получил кода ошибки. Я понятия не имею, что сделать затем. Скажите мне, как зафиксировать его.Спасибо.

Обновление 7 февраля 2019::

Следуйте @vidarlo советуют, я изменился на флаг опции --. Вот результат:

  • -- не работает с командой в " " кавычка. Это возвращает ошибку выполнения сбоя: Fail to execute child process "df -h"
  • Я не мог найти документ для этой опции. Не в man не в --help-all. Мне кажется, что этот флаг еще не является стандартным.

То, что я ищу, является опцией, позволяют мне передавать команду с несколькими аргументами. В Lubuntu это похоже на это lxterminal -e "df -h -x devtmpfs -x tmpfs -x squashfs".

5
задан 7 February 2019 в 14:15

3 ответа

Вы хотите:

gnome-terminal -t "Disk Manager" --hide-menubar -- df -h --output=source,used,size,avail,target -x devtmpfs -x tmpfs -x squashfs

-- обычно универсальный синтаксис командной строки для "ничего после того, как это должно будет быть интерпретировано как опция". В этом случае Терминал GNOME просто берет любые аргументы, он дан и выполняет их как командную строку с первым аргументом как программа как остальные как аргументы программы.

-- "df..." отказавший, потому что это использовало всю командную строку в качестве исполняемого имени.

3
ответ дан 23 November 2019 в 08:54

Прочитайте сообщение об ошибке:

# Option “-e” is deprecated and might be removed in a later version of gnome-terminal.
# Use “-- ” to terminate the options and put the command line to execute after it.

Сообщение об ошибке говорит Вам это -e удерживается от использования и может быть удален в будущих версиях и альтернативе -e.

У Вас есть следующая командная строка:

Exec=gnome-terminal -t "Disk Manager" --hide-menubar -e "df -h -- output=source,used,size,avail,target -x devtmpfs -x tmpfs -x squashfs"

Измените это на

Exec=gnome-terminal -t "Disk Manager" --hide-menubar -- "df -h --output=source,used,size,avail,target -x devtmpfs -x tmpfs -x squashfs"
6
ответ дан 23 November 2019 в 08:54

Я мог бы использовать - с командой, которая содержит параметры ( не забудьте удалить двойные кавычки, окружающие команду, которая должна быть передана на терминал. В противном случае она не удастся )

Exec=/usr/bin/gnome-terminal -- globalprotect connect -u $USER_VPN -p $VPN_TO_CONNECT

У меня это сработало. Выполните всю строку в своем терминале (очевидно, избегайте части Exec = ) перед сохранением файла, чтобы проверить, работает ли он так, как вы ожидали, и тем самым сэкономить время.

0
ответ дан 5 May 2020 в 08:36

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

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