У меня проблемы с запуском скрипта bash zsh. Сценарий похож на приведенный ниже и должен работать под Bash:
#!/bin/bash
echo "<235234>" | egrep -oe [0-9]+
Тем не менее, моя оболочка по умолчанию включена zsh, поэтому для запуска приведенного выше сценария введите /bin/bashв командной zshстроке, а затем я запускаю . script.sh.
Тем не менее, это приводит к ошибке, и я получаю:
zsh: no matches found: [0-9]+
(Я должен получить 235234вместо).
На данный момент я запутался и у меня есть следующие вопросы:
- Если я нахожусь в
bash, почему я получаю сообщение об ошибкеzsh? - Почему
egrepрегулярное выражение терпит неудачу? Регулярное выражение выглядит правильно для меня.
Примечание: в случае, если это имеет значение, я не должен изменять сценарий (сценарий является общим для нескольких пользователей, и мы не должны вносить в него изменения).
Спасибо
exec zshмоего~/.bashrc, ни моего~/.profile(у меня даже нет.profileсвоего домашнего каталога). Я не помню, как мне удалось сделатьzshмою оболочку по умолчанию. Кроме того, извините за путаницу, но первая строка в моем сценарии - шебанг#!/bin/bash. При этом я до сих пор не знаю, почему поиск файлаzshне работает (если у вас есть какие-либо мысли по этому поводу, дайте мне знать). В любом случае, я свяжусь с администратором, чтобы обновить скрипт, но добавить кавычки в регулярное выражение.