Я думаю, вы должны добавить это в .bashrc
, что также работает для не -оболочек входа в систему.
В вашем коде три ошибки.
$
в regex2
иregex3
). bash
не понимает Perl -как регулярное выражение \W
как "не символ слова". line
). Чтобы решить эту проблему:
Используйте $
для получения значений regex2
и regex3
в тестах:
if [[ $line =~ $regex2 ]]; then...; fi
Используйте регулярное выражение POSIX [^[:alnum:]_]
вместо \W
в выражениях или [[:blank:]]
, которое соответствует табуляции или пробелу.
Используйте while IFS= read -r line; do...; done
(, см. " Понимание "IFS= чтение -r строки" " ).