Как проверить, выполняется ли набор команд при запуске? [duplicate]

Я в процессе создания GUI-фронтэнда к xrandr, и мне нужно, чтобы некоторые команды выполнялись при запуске.

Я использую файл .desktop, помещенный в ~/.config/autostart.

Я не могу сказать, будет ли это работать, поскольку xrandr не работает с моей установкой - я знаю, что все работает так, как должно работать; просто моя система не поддерживает это - я просто получу кучу ошибок xrandr. Что также означает, что я получу ошибки при запуске и никаких заметных изменений.

Есть ли способ узнать, были ли выполнены команды?

1
задан 26 April 2016 в 10:47

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 для новичков - Machtelt Garrels - 2008
Усовершенствованное руководство по созданию сценариев Bash - Mendel Cooper - 2014

4
ответ дан 26 April 2016 в 10:47

Другие вопросы по тегам:

Похожие вопросы: