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

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

Что я хочу?

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

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 
  • Как заставить проверку заклинаний Кейт игнорировать пробег слов?
  • Редактор Kate: как определить / добавить фильтры типов файлов в диалоговом окне файлов?
  • Как создать синтаксис выделения Kate для CSV-файлов
  • Как изменить цвет фона боковой панели Kate и Kile?
  • Как я могу определить, какой словарь kate / KDE используется для проверки орфографии?
  • У Kate нет границ окна, и, таким образом, кнопки минимизации, максимизации и закрытия
  • KDE5 kate не будет открывать удаленное местоположение ssh (рыба) открытого файла
  • Изменить каталог для файлов подсветки синтаксиса Kate
  • Как искать и заменять несколько строк в KDE Kate?
  • Как сбросить цветные схемы по умолчанию Kate?
  • Как установить цветовые схемы для Kate, работающие на GNOME
  • Interesting Posts

    Заполнение массива с помощью комбинации sed / echo

    Как пропустить файл с определенным расширением файла, если есть другой файл (с другим расширением) с тем же именем?

    Как преобразовать изображение в 24-битный BMP в командной строке?

    повторение значения из функции BASH после выполнения команды в фоновом режиме

    Вывод статуса systemdt процесса httpd

    Как показать `netgroups` презентабельно (и почему` tr` не работает)?

    Как редактировать текст в любом месте с любимым редактором в Linux?

    Это хорошая идея для загрузки утилит Linux по умолчанию?

    Каковы причины, по которым каждая строка в Makefile должна выполняться в отдельной оболочке?

    Я не могу удалить папку с сервера

    Прозрачные огромные страницы, размер Pagetable и / proc / <pid> / status

    Войти в систему

    Массивы Bash – не работают

    Поймать сигнал уничтожения, когда процесс находится в состоянии S

    Команда восстановления файловой системы после установки ОС

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