Итак, бег gedit myfile.txt
работает хорошо. Но как насчет открытия файла внутри скрипта bash с использованием стандартного настольного приложения, связанного с типом файла?
Я попробовал ниже, который прекрасно работает при запуске вручную в терминале, но когда я помещаю его в файл Bash, ничего не происходит:
#!/bin/bash
xdg-open "myfile.txt"&
Что я должен сделать вместо этого?
Обратите внимание, что мне нужно, чтобы файл оставался открытым и после закрытия терминала.
gedit
с перечисленным файлом (или открывает новую вкладку в существующем сеансе). Однако он возвращается немедленно, а не блокируется до выхода из программы.xtg-open
на*.txt
,*.html
и больше - просто не будет работать.Ответы:
Я думаю, что ваш сценарий должен работать. Но вы можете добавить что-то к нему, чтобы получить немного больше информации:
при запуске этого скрипта (с именем my_open.sh) в терминале, например:
Я получаю следующий вывод:
это говорит мне, что путь к файлу в порядке, mimetype распознается, и рабочий стол, который используется для открытия файла, также в порядке. И Gedit открывается с файлом, о котором идет речь.
Теперь при запуске на другом файле:
Я получаю следующий вывод:
Обратите внимание на другой mimetype и отсутствующий файл рабочего стола. Тем не менее, xdg-open открывает настройки по умолчанию для всех текстовых файлов (gedit).
Итак, вы можете захотеть добавить что-то подобное в ваш скрипт и посмотреть, получите ли вы неожиданный вывод (который вы затем можете добавить к своему вопросу ...).
источник
finished script
в конце. Я рекомендую [ catb.org/~esr/writings/taoup/html/]( Искусство программирования Unix) правило молчания. Кстати: обратные пометки устарели - вместо этого предпочитайте $ (...), что является вложенным.nohup
или&
, но онаxdg-open
возвращается и позволяет вам продолжить.xdg-open
уже делает, так что в любом случае это не сценарий качества производства ...Сделайте bash-скрипт test.sh как:
Затем сделайте скрипт исполняемым как:
Наконец, запустите скрипт как:
источник
Может быть, gnome-open вместо xdg-open
источник
Вы идете в правильном направлении. Если вы хотите, чтобы приложение GUI оставалось открытым, когда вы закрываете окно терминала, вам просто нужно добавить
nohup
в начале строки.Если приложение с графическим интерфейсом не открывается, возможно, из-за того, что
DISPLAY
в оболочке не установлена переменная окружения, из которой вы пытаетесь его запустить. Попробуйте сделать эхо$DISPLAY
источник
nohup
ни&
Первая часть вашего вопроса
с помощью команды
cat
вы можете открыть файл внутри терминала, если это то, что вы хотите (об этом говорится в первой части вашего вопроса).чтобы использовать его, вы можете просто напечатать
cat FILENAME
.Дополнительная информация
Если вам нужно больше команд: вот хороший список команд.
GNOME редактор по умолчанию
Если вы хотите открыть файл в приложении по умолчанию GNOME
gedit
.чтобы использовать это, просто наберите
gedit FILENAME
источник
gedit file.filetype
вы откроете файл так, как хотите!Хотя я не уверен, что на самом деле должно быть достигнуто здесь, и основываясь на некоторых недавних комментариях, один скрипт должен открывать ЛЮБОЙ файл в приложении по умолчанию или в той степени, в которой это приложение поддерживает.
Если это так, то самый простой способ сделать это - открыть терминал и перейти к имени сценария / пути / к / имени файла или, если в пути есть пробелы, тогда имя сценария '/ пути / к / имени файла'
Используйте это как скрипт, вы можете использовать любое имя для скрипта, я буду использовать openit1 в качестве примера. Лучше всего использовать сценарии непосредственно из ~ / bin для добавления числа к имени, чтобы не конфликтовать ни с какими существующими командами Linux
Закройте Gedit & в терминале
Перезапустите, чтобы добавить ~ / bin в ваш $ PATH
Для вызова откройте терминал и зайдите
Если указано как оригинал и используется ориг. сценарий для одного конкретного файла для каждого сценария и вызова d. щелкнув левой кнопкой мыши на скрипте, вам просто нужно выбрать « Выполнить » вместо «Выполнить в терминале»
источник
Restart to add ~/bin to your $PATH
- Хм, старые привычки Windows? ;)