На этот вопрос уже есть ответ здесь:
Я в процессе создания GUI-фронтэнда к xrandr
, и мне нужно, чтобы некоторые команды выполнялись при запуске.
Я использую файл .desktop
, помещенный в ~/.config/autostart
.
Я не могу сказать, будет ли это работать, поскольку xrandr
не работает с моей установкой - я знаю, что все работает так, как должно работать; просто моя система не поддерживает это - я просто получу кучу ошибок xrandr. Что также означает, что я получу ошибки при запуске и никаких заметных изменений.
Есть ли способ узнать, были ли выполнены команды?
Если Ваше автоматическое запустилось .desktop
файл является сценарием, просто можно поместить эхо управления в сценарий как следование примеру:
# if yyou want only data saved for one run
echo "Script has run on $(date)" > ~/script.log
# if you want a continous log output append
if [ -e ~/script-log ]
then
echo "Script has run on $(date)" >> ~/script.log
else
touch ~/script.log
echo "Script has run on $(date)" >> ~/script.log
fi
Таким образом, даже можно произвести некоторые переменные данные, которые Вы могли бы хотеть для того, чтобы управлять этим путем. Просто удостоверьтесь, что Ваш конечный результат печатается после всех команд в сценарии, таким образом, Вы знаете, сценарий пробежал.
Если Вы хотите точно знать, привели ли Ваши команды в Вашем сценарии Вас к сбою, также может сделать:
# do this at start of your script
if [ -e ~/script-error.log ]
then
# we do nothing
else
touch ~/script-error.log
fi
# then within your script (I use as example here cd /root just to demonstrate)
# you can do this with nearly all commands
cd /root 2>> ~/script-error.log
Это выбрало бы, только если одна из Ваших команд бросит ошибку. Уверенный не применимый везде, но подоконник лучше как вывод не вообще.
Объяснение передачи по каналу:
# single piping symbol (overwrite the existing file and creates one if not existant)
> # pipes all output
1> # pipes only success messages
2> # pipes only error messages
# double piping symbol (append to an existing file and fail if file does not exist)
>> # pipes all output
1>> # pipes only success messages
2>> # pipes only error messages
Хочу знать больше об ударе, пишущем сценарий подробно здесь две ссылки:
Руководство Bash для новичков - Machtelt Garrels - 2008
Усовершенствованное руководство по созданию сценариев Bash - Mendel Cooper - 2014