Поместите кавычки вокруг INSTALL_LOG_OUTPUT в вашей функции, как это:
function install_log() {
echo "$1" >> "$INSTALL_LOG_OUTPUT" 2>&1
}
После повторного запуска вашего скрипта вы, вероятно, получите сообщение об ошибке, указывающее, что INSTALL_LOG_OUTPUT пуст, с сообщением такого вида: bash: : No such file or directory
.
Заменить:^\(\w.*?\) *=.*
по:extern \1;
Объяснение :сопоставить строки, начинающиеся(^
)с составной частью слова (\w
), за которой следует любое количество символов, кроме новой строки(.*?
)до первого появления нуля или более пробелов ( *
), за которым следует знак равенства и больше символов, кроме новой строки(=.*
). Часть строки до и за исключением необязательных пробелов, за которыми следует знак равенства, помещается в группу, которую замещающий текст может использовать как \1
.
Если у вас есть инициализаторы, которые охватывают несколько строк, вы можете удалить строки, начинающиеся с некоторого пробела, с M-x flush-lines
в регулярном выражении ^\s-
.