У меня проблемы с запуском скрипта 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
не работает (если у вас есть какие-либо мысли по этому поводу, дайте мне знать). В любом случае, я свяжусь с администратором, чтобы обновить скрипт, но добавить кавычки в регулярное выражение.egrep
.