Откройте файл с программой по умолчанию и подождите, пока приложение не будет завершено

Я хочу открыть текстовый файл из командной строки с помощью приложения по умолчанию. В течение этого времени приложение по умолчанию открывается, терминал должен быть отключен (не может выполнить другую команду). Например, я использую KDE, а по умолчанию читатель .txt – Kate, затем я хочу выполнить kate test.txt и терминал отключается, пока я не kate test.txt Kate.

Что я хочу?

  • выполнить команду, которая запускает текстовый редактор по умолчанию
  • между тем программа c ++ ждет в той конкретной точке, которая выполняет команду, описанную выше
  • когда пользователь готов, сохраняет документ, выходит из текстового редактора по умолчанию (завершается) и выполнение программы c ++ продолжается

  • Кейт против VIM / Emacs относительно скорости
  • Как сбросить цветные схемы по умолчанию Kate?
  • Как установить подсветку синтаксиса по умолчанию в Kate
  • Как я могу запускать свои собственные скрипты в kate 3.8.2? «Внешние инструменты» недоступны в разделе плагинов
  • Редактор Kate: как определить / добавить фильтры типов файлов в диалоговом окне файлов?
  • Плагин подсветки синтаксиса AsciiDoc для Кейт?
  • fedora 24 - kate и texmaker отображаются увеличенными
  • Как создать синтаксис выделения Kate для CSV-файлов
  • One Solution collect form web for “Откройте файл с программой по умолчанию и подождите, пока приложение не будет завершено”

    Текстовый редактор по умолчанию в системе обычно хранится в $EDITOR окружения $EDITOR . Например, в моей системе у меня есть:

     $ echo $EDITOR /usr/bin/emacs 

    Таким образом, вы можете просто запустить

     $ $EDITOR test.txt 

    ПРИМЕЧАНИЕ. Это не обязательно тот же редактор, который задан в настройках графической среды. Используйте метод ниже, чтобы получить это.

    В качестве альтернативы, если система настроена на ее использование, вы можете запустить программу по умолчанию, связанную с типом mime, с помощью xdg-open ( open в OSX):

     $ xdg-open test.txt 

    Но это не будет удерживать терминал до тех пор, пока команда не закроется. Тем не менее, вы можете использовать настройку mime, чтобы узнать, какая программа будет открыта, а затем вызвать программу самостоятельно. Чтобы сделать это, получите программу, связанную с типом текста mime:

     $ xdg-mime query default text/plain pluma.desktop;sublime_text.desktop 

    Итак, теперь вы можете разобрать эту строку, чтобы получить имя программы:

     editor=$(xdg-mime query default text/plain | sed 's/\..*//') $editor test.txt 

    ПРИМЕЧАНИЕ. Предполагается, что файл .desktop имеет имя фактического исполняемого файла. Более безопасным способом может быть поиск самого файла рабочего стола и grep из него. Затем запустите программу, которую вы нашли. Вы можете сделать все это с помощью этой команды:

     editor=$(grep -i ^exec $(locate -n 1 $(xdg-mime query default text/plain | cut -d';' -f 1)) | perl -pe 's/.*=(\S+).*/$1/') $editor test.txt 
    Interesting Posts

    SSH на несколько удаленных машин через ssh tunnel

    Как заменить исходное значение переменной в теге HTML

    Получить информацию о поставщике и продукте сетевого адаптера

    Диспетчер Mint Display Manager говорит «g_key_file_free: assertion» key_file! NULL не удалось "после того, как я перестроил glib

    Разрешение спецификации:% i и% I разница?

    rsyslog: Как я могу гарантировать, что rsyslog предоставляет сообщение об ошибке / отладке всякий раз, когда сообщения отбрасываются?

    Выполнение скрипта на удаленном сервере, содержащемся на стороне клиента

    что означает отдельная дефис Curl (-)?

    Комбинация клавиш Thunar для изменения вкладки

    secure apt R pgp key no_pubkeys найдено

    Функция проверки переменной BASH

    Как выбрать, какой клиент bittorrent вызывается при нажатии загруженного файла торрента в хром?

    Должен ли я использовать трубопровод или перенаправление для ввода в «сортировку»,

    как выполнить несколько команд gnome-terminal

    Как решить nsf-общую связанную ошибку при установке zsh в ubuntu?

    Linux и Unix - лучшая ОС в мире.