Запускай:
cd /tmp
touch bashdays.txt
rm -i bashdays.txt
Получаем интерактивный запрос:
rm: remove regular empty file 'test.txt'?
Выбор зависит от потребности. Либо да, либо нет. Но что вводить? Очевидно же — y или n.
Справедливо. Но что если… Запускаем:
locale -k noexpr yesexpr
Выхлоп:
noexpr="^[-0nNНн]"
yesexpr="^[+1yYДд]"
Это все возможные варианты, которыми ты можешь воспользоваться. Если вместо «y» ты введешь знак «+» — файл удалится.
Аналогично можно ввести 0 или 1. Либо «Д» или «Н».
Не везде из коробки прописаны такие регулярки, например на англоязычной убунте хуй с маслом.
noexpr="^[nN]"
yesexpr="^[yY]"
Функция оценивающая ответ пользователя, учитывает локализацию.
ㅤ
Для подтверждения, или отмены может быть использован любой символ в квадратных скобках из вывода вышеприведённой команды.
А любой символ не совпадающий с символами из набора
yesexpr будет равносилен отмене, в том числе и пустой ввод.Как на это можно повлиять?
Всё это забиндино в файлах которые лежат в папке:
/usr/share/i18n/localesНапример, в файле ru_RU есть такое:
LC_MESSAGES
yesexpr "^[+1yY<U0414><U0434>]"
noexpr "^[-0nN<U041D><U043D>]"
yesstr "<U0434><U0430>"
nostr "<U043D><U0435><U0442>"
END LC_MESSAGES
Тут присутствует как раз «0» и «1» / «+» и «-».
Если хочется упороться, можешь собрать свою локаль и добавить свои символы в регулярку:
cp /usr/share/i18n/locales/ru_RU ~/my_ru_RU
localedef -f UTF-8 -i ~/my_ru_RU ru_RU.UTF-8
После первой команды, нужно отредактировать файл
~/my_ru_RU и затем запускать вторую команду.Такие вот перлы и приколы. Изучай.
👉 Многие этого ждали, завтра закину анонс про личное наставничество и обучение в рамках проекта Linux Factory.
tags: #linux
—
🔔 @bashdays