Сценарий Bash используется для копирования файла в каталог запуска. Он работает нормально, когда имя пользователя (Ashok) явно дано:
#!/bin/sh
sudo cp /usr/share/applications/syncthing-start.desktop /home/ashok/.config/autostart
Так как скрипт предназначен для нескольких пользователей, я пытался изменить код, чтобы имя пользователя не было дано, как это:
#!/bin/sh
sudo cp /usr/share/applications/syncthing-start.desktop /home/$USER/.config/autostart
в Позже случай, сценарий показывает ошибку:
cp: failed to access '/home/root/.config/autostart': Not a directory.
Кто-нибудь знает обходной путь?
Проблема может быть решена с использованием $ sudo_user вместо $ user. Полный скрипт тогда был бы:
#!/bin/sh
sudo cp /usr/share/applications/syncthing-start.desktop /home/$SUDO_USER/.config/autostart
Поскольку OP хочет домой пользователя, который выполнил скрипт, он должен включать в себя:
if [ "$EUID" -ne 0 ] ; then
echo "Sorry, but you are not root. Use sudo to run"
exit 1
fi
, применение пользователя использовать «sudo» $ user_sudo должен сделать именно то, что op хотел достичь.
Для того, чтобы иметь глобальный автозапуск , необходимо скопировать этот файл в /etc/xdg/autostart
следующей командой:
sudo cp /usr/share/applications/syncthing-start.desktop /etc/xdg/autostart/
и перезагрузить.