Я занимаюсь созданием графического интерфейса пользователя для xrandr
, и мне нужно, чтобы некоторые команды выполнялись при запуске.
Я использую .desktop
файл, помещенный в ~/.config/autostart
.
Я не могу сказать, сработает ли это, так как xrandr
не работает с моей настройкой - я знаю, что все работает так, как должно быть; просто моя система не поддерживает это - я просто получу кучу ошибок xrandr. Это также означает, что я получу ошибки при запуске и никаких заметных изменений.
Есть ли способ узнать, были ли выполнены команды?
решение1
Если ваш автоматически запускаемый .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 по этим двум ссылкам:
Руководство по Bash для начинающих - Machtelt Garrels - 2008
Расширенное руководство по написанию сценариев Bash - Mendel Cooper - 2014