Редактор dconf у меня работал, но я тоже видел это решение, и оно сработало легко.
https://github.com/Mayccoll/Gogh/blob/master/content/themes.md
У них есть несколько разных цветовых тем, перечисленных вместе с командной строкой для копирования и вставки в терминал. Тогда это просто работает.
Вот пример: https://github.com/Mayccoll/Gogh/blob/master/content/themes.md
Вам даже не нужно использовать sudo для изменения тема.
В zsh
:
{mycmd.sh} always {rm -rf temp_files}
Часть always будет выполняться даже в случае ошибки, такой как глобус без совпадения или синтаксическая ошибка времени выполнения, которая выйти из скрипта.
Теперь я использую исключительно операторы &&
и ||
из если;то
. Но иногда гораздо понятнее вернуться к «если; то». Это один из тех случаев, когда вам требуется решение командной строки.
Я бы переписал это так...
$ if mycmd.sh; then { success; actions; } else { fail; actions; } fi; rm -rf temp_files/
if
использует его результат rm
происходит после fi
, он будет выполняться безоговорочно. mycmd.sh && { rm -r temp_files; true; } || { rm -r temp_files; false; }
Если вы ищете копию некоторых языков' попробуйте { } finally { }
,
есть и другой способ: использование trap
, встроенного в bash
и других оболочках POSIXy (см. help trap
).
#!/bin/bash
# exit with this by default, if it is not set later
exit_code=0
# the cleanup function will be the exit point
cleanup () {
# ignore stderr from rm incase the hook is called twice
rm -rf "temp_files/" &> /dev/null
# exit(code)
exit $exit_code
}
# register the cleanup function for all these signal types (see link below)
trap cleanup EXIT ERR INT TERM
# run your other script
mycmd.sh
# set the exit_code with the real result, used when cleanup is called
exit_code=$?
Прочтите об аргументах команды trap.
Обратите внимание, что cleanup
вызывается:
ERR
из аргументов прерывания, чтобы отключить ) Новые строки в скрипте почти всегда эквивалентны точкам с запятой:
mycmd.sh; ret=$?; rm -rf temp_files; exit $ret
В ответ на правку:
Кроме того, вы также можете использовать ловушку
и подоболочка:
( trap 'rm -rf temp_files' EXIT; mycmd.sh )