Вы говорите о безразличном сравнении без учета регистра или полном нормализованном сравнении Unicode?
При тупом сравнении не будут найдены строки, которые могут быть одинаковыми, но не бинарными.
Пример:
U212B (ANGSTROM SIGN)
U0041 (LATIN CAPITAL LETTER A) + U030A (COMBINING RING ABOVE)
U00C5 (LATIN CAPITAL LETTER A WITH RING ABOVE).
Все они эквивалентны, но также имеют разные двоичные представления.
Тем не менее, Unicode Normalisation следует обязательно прочитать, особенно если вы планируете поддерживать хангыль, тайский и другие азиатские языки.
Кроме того, IBM в значительной степени запатентовала наиболее оптимизированные алгоритмы Unicode и сделала их общедоступными. Они также поддерживают реализацию: IBM ICU
Команда kill
действительно посылает сигнал процессу ... он немного неверно назван.
Команда
killall -SIGxxx name
отправит «сигнал» xxx
процессу с именем «имя». Процесс в Unix может получать и обрабатывать набор сигналов для реагирования на внешние события. По умолчанию kill
отправляет сигнал SIGTERM, который имеет (предопределенный) эффект изящного уничтожения процесса. (сигнал SIGKILL убьет процесс "жестоко", поэтому иногда вам нужно использовать команду killall -SIGKILL ...
).
Некоторые процессы имеют жестко закодированное значение (например: HUP
- разъединение и т. Д.) И иногда отправляются ядром. USR1
и USR2
являются определяемыми пользователем сигналами.
Вы даже можете легко сделать это в сценариях: если вы вставите в сценарий строку
trap "echo TRAPPED" USR1
, сценарий выведет «TRAPPED», когда вы отправите ему сигнал USR1 с помощью команды kill.
Таким образом, ответ на последний вопрос:
Очевидно, что программа «tint2» имеет код, который после получения сигнала USR1 перезагрузит свой файл конфигурации.
См., Например, http://unixhelp.ed.ac.uk/CGI/man-cgi?signal+7
USR2
должен бытьUSR1
. – Earlz 05.05.2020, 13:56