Как запускать `файлы.desktop `из терминала (или dmenu)

Я только что создал простой bash-скрипт в своей корневой папке...

touch netresolv.sh
vim netresolv.sh 

// заменяем избранный редактор наvim

Код:

#!/bin/bash
echo "nameserver 8.8.8.8" > /etc/resolv.conf && echo "nameserver 1.1.1.1" >> /etc/resolv.conf && service 
NetworkManager restart && exit

//сохранение и выход из текстового -редактора

chmod +x netresolv.conf

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

Может ли кто-нибудь сказать мне, как довести этот скрипт до конца? Я не хочу, чтобы он запускался до входа в систему, потому что это подключит Интернет до того, как пользователь root войдет в систему, что сделает его уязвимым, или так? Добавлю ли я его как задание cron? или как сервис systemd? или добавить к ~/.profile?

1
29.12.2020, 16:51
2 ответа

При условии, что они исполняемые(chmod u+x /path/to/app.desktop)вы можете добавить этот шебанг вверху:

#!/usr/bin/env xdg-open

И с этого момента вы можете вызывать свое приложение с помощью:

/path/to/app.desktop

Например, этот файл.desktop запустится xeyes.

#!/usr/bin/env xdg-open
[Desktop Entry]
Name=Xeyes
Exec=xeyes
Terminal=false
Type=Application
3
18.03.2021, 22:40

Вы можете попробовать разобрать файл и выполнить то, что указано в строке Exec=. Это должно сработать:

$(awk '/^Exec=/{sub(/^Exec=/, ""); print}') file.desktop

Теоретически запустится то, что было в file.desktop.

0
18.03.2021, 22:40

Теги

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