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

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

Что я хочу?

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

  • Как создать синтаксис выделения Kate для CSV-файлов
  • Изменить каталог для файлов подсветки синтаксиса Kate
  • Как изменить цвет фона боковой панели Kate и Kile?
  • Как изменить подсветку синтаксиса по умолчанию для заголовочного файла в Kate
  • Редактор Kate: как определить / добавить фильтры типов файлов в диалоговом окне файлов?
  • Как переключить направление текста на rtl & ltr в kate и kwrite
  • У Kate нет границ окна, и, таким образом, кнопки минимизации, максимизации и закрытия
  • Как найти и заменить текст во всех открытых файлах с помощью kate?
  • 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

    AIX 6.1 JFS2 Oracle файловая система, не использующая много файлов системный кеш

    Inline debug (xxtrace) в скриптах

    Использовать звездочку в переменных

    Есть ли способ узнать размер кеша L1, L2, L3 и оперативной памяти в Linux?

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

    Горячая точка и доступ в Интернет вместе – почему бы и нет?

    Поддерживает ли bash обратные ссылки при расширении параметров?

    Как синхронизировать datetime в centos, минимально установленном в виртуальном боксе?

    sed для замены любой записи в файле конфигурации

    Вход в виртуальную машину VirtualBox Fedora

    Скрипт для Ping IP и создание журнала, показывающего дату / время любого сбоя, раз более 500 мс, а traceroute – отказ

    Выход Cronjob в журнал

    Как шифровать файловую систему F2FS?

    Замена Bash-процесса не работает как «root» на OS X

    Риски, связанные с lazy_itable_init = 1 для ext4 fs на SD-карте

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