Из основного, \n, (изначально добавлял, потому что не работало, но сейчас перепроверил, без него тоже работает. В чём смысл, он создаёт после блока реестра пустую строку, и [[ -z $line_reg ]] && break выходил из цикла, не найдя нужную строку, которая уже была добавлена внизу и добавлял. [[ -z $line_reg ]] && break нужен, когда существует найденный блок, но отсутствует соответствующая запись, каждый блок разделён между собой пустой строкой, по этому чтобы не читать весь файл целиком, но сразу выходит, когда видит разделение и то что уже другой блок будет
в sed / заменил на |, потому что sed начинает работать неправильно, если есть / (сейчас проблем нет, но если кому-то прийдётся / использовать в функции для работы с реестром, то они появятся)
двойные ковычки убрал, потому что, когда двойные скобки [[ ]], для левой части двойные ковычки вообще не нужны (функционально ничего это не делает). Нужны для правой стороны, когда к примеру [[ $qwe == "$asd" ]], в таком случае необходимо, иначе spellcheck поругается ))), но, это когда строгое равенство, для регулярных выражений [[ $qwe =~ $asd ]], не нужны. Так двойные ковычки нужны в блоках с одной квадратной скобкой. [ -n "$qwe" ], без них корректно работать не будет, для [[ -n $qwe ]] не нужны
Из основного, \n, (изначально добавлял, потому что не работало, но сейчас перепроверил, без него тоже работает. В чём смысл, он создаёт после блока реестра пустую строку, и
[[ -z $line_reg ]] && break
выходил из цикла, не найдя нужную строку, которая уже была добавлена внизу и добавлял.[[ -z $line_reg ]] && break
нужен, когда существует найденный блок, но отсутствует соответствующая запись, каждый блок разделён между собой пустой строкой, по этому чтобы не читать весь файл целиком, но сразу выходит, когда видит разделение и то что уже другой блок будетв sed / заменил на |, потому что sed начинает работать неправильно, если есть / (сейчас проблем нет, но если кому-то прийдётся / использовать в функции для работы с реестром, то они появятся)
двойные ковычки убрал, потому что, когда двойные скобки [[ ]], для левой части двойные ковычки вообще не нужны (функционально ничего это не делает). Нужны для правой стороны, когда к примеру [[ $qwe == "$asd" ]], в таком случае необходимо, иначе spellcheck поругается ))), но, это когда строгое равенство, для регулярных выражений [[ $qwe =~ $asd ]], не нужны. Так двойные ковычки нужны в блоках с одной квадратной скобкой. [ -n "$qwe" ], без них корректно работать не будет, для [[ -n $qwe ]] не нужны