Во-первых, моя среда рабочего стола - GNOME. Я создал сценарий для создания файл рабочего стола программы автозапуска. Однако я получил ошибку.
Make Autostart Script
Name > nabi // I input nabi
./make_autostart_script: line 11: ~./config/autostart/nabi.desktop: No such file or directory
Descriptive Name >
И код:
# !/bin/bash
# This script make autostart script
echo Make Autostart Script
# Name
echo -n "Name > "
read name
touch ~/.config/autostart/$name.desktop
echo "[Desktop Entry]" >> ~/.config/autostart/$name.desktop
echo "Name=$name" >> ~./config/autostart/$name.desktop
# Generic Name
echo -n "Descriptive Name > "
read generic_name
echo "GenericName=$generic_name" >> ~/.config/autostart/$name.desktop
# Comment
echo -n "Comment > "
read comment
echo "Comment=$comment" >> ~/.config/autostart/$name.desktop
# Exec
echo -n "Location of program > "
read exec
echo "Exec=$exec" >> ~/.config/autostart/$name.desktop
# Terminal
echo -n "Do you want to execute it in terminal?(Y/n) > "
read yn
if [$yn -eq y];then
echo "Terminal=true" >> ~/.config/autostart/$name.desktop
else
echo "Terminal=false">> ~/.config/autostart/$name.desktop
fi
# Type
echo "Type=Application" >> ~/.config/autostart/$name/desktop
# Autostart
echo "X-GNOME-Autostart-enabled=true"
Как я могу решить проблему?
Проблема показана в контексте:
# Name
echo -n "Name > "
read name
touch ~/.config/autostart/$name.desktop
echo "[Desktop Entry]" >> ~/.config/autostart/$name.desktop
echo "Name=$name" >> ~./config/autostart/$name.desktop
должен быть:
# Name
echo -n "Name > "
read name
touch ~/.config/autostart/$name.desktop
echo "[Desktop Entry]" >> ~/.config/autostart/$name.desktop
echo "Name=$name" >> ~/.config/autostart/$name.desktop
с изменением тем, чтобы быть (полужирный для акцента):
echo "Name=$name" >>
~/.config/autostart/$name.desktop
который указывает на названную папку .config
который находится в Вашем корневом каталоге ( ~
если коротко)
вместо:
echo "Name=$name" >>
~./config/autostart/$name.desktop
который указывает на несуществующий названный каталог ~.
(если Вам не назвали пользователя .
, в котором это указало бы на .
домашняя папка)
Как примечание стороны также:
Кажется, что Вы встретитесь с ошибкой в разделе # Тип.
# Type
echo "Type=Application" >> ~/.config/autostart/$name/desktop
должен быть
# Type
echo "Type=Application" >> ~/.config/autostart/$name.desktop
если я не ошибаюсь. (различие заменяет $name/desktop
с $name.desktop
Относительно строки 31:
if [$yn -eq y];then
должен быть самое меньшее if [ $yn = y ]; then
но вероятно более правильно
if [ "$yn" = "y" ] || [ "$yn" = "Y" ];then
который покрыл бы если Вы тип Y или y. Обратите внимание то использование -eq
для сравнений цифры и не будет работать в этом случае.
Надежда, которая помогает! Счастливое кодирование.