首先,我的桌面环境是 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"
我该如何解决这个问题?
答案1
该行中的~./config
应该是~/.config
答案2
上下文中显示的问题:
# 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
用于数字比较,在这种情况下不起作用。
希望对您有所帮助!祝您编码愉快。