В Ubuntu 16.04 я (в конце концов) хочу поместить текстовый файл на иконку на рабочем столе и запустить приложение Node.js, обработав удаленный файл и выведя новый файл.
Я обнаружил .desktop
файлы и делаю все возможное, чтобы понять, как заставить процесс работать, используя базовые настройки. В настоящее время у меня есть три файла: два файла в каталоге на /home/blackslate/Utilities/
и один на моем рабочем столе.
Файлы утилит
Текстовый файл с именем convert.js
:
const fs = require('fs');
const crypto = require('crypto');
const random = crypto.randomBytes(4).toString('hex');
const filename = random + '.txt'
fs.appendFile(filename, 'Hello ' + random + '!', function (err) {
if (err) throw err;
console.log(filename + ' saved');
});
Исполняемый файл с именем convert.sh
:
#!/bin/sh
node ./convert.js
gnome-terminal -e "bash -c 'echo hello world; sleep 3'"
Настольный файл
Исполняемый файл с именем convert.desktop
:
[Desktop Entry]
Exec=gnome-terminal -e "/home/blackslate/Utilities/convert.sh \"%u\""
Icon=utilities-terminal
Type=Application
Name=Convert
Вот что происходит:
Если я вызовите node ./convert.js
из окна терминала, я вижу, что:
Если я вызываю ./convert.sh
из окна терминала, я вижу, что:
hello world
перед закрытием через 3 секунды Если я нажимаю на файл Convert desktop, я вижу, что:
hello world
, а затем закрывает его через 3 секунды Очевидно, что вторая команда в файле convert.sh
выполняется, но кажется, что с первой что-то не так. Какие шаги я могу предпринять, чтобы отладить и исправить это?
A. рабочий стол может легко запустить скрипт удара
Необходимо изменить вещи в Вашем convert.sh
:
#!/bin/bash
# set prompt to the working dir with cd
cd /home/blackslate/Utilities/
node ./convert.js
# You want some text notification? Use notify-send
notify-send -t 3000 'echo hello world'
Обратите внимание, что можно перенаправить вывод узла./convert.js к переменной и использовать его в качестве текста уведомления...
MYVAR=$(node ./convert.js)
затем notify-send -t 3000 "Convert" "$MYVAR"
И можно внести некоторые изменения в .desktop
файл
найдите значки там /usr/share/icons
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec='/home/blackslate/Utilities/convert.sh'
Name=Convert
Icon=utilities-terminal