我在上运行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
默认外壳的。另外,对于造成的混乱,我们深表歉意,但是我剧本的第一行是shebang#!/bin/bash
。这样,我仍然不知道为什么从中获取文件zsh
不起作用(如果您对此有任何想法,请告诉我)。无论哪种情况,我都会与管理员联系以更新脚本,尽管会在正则表达式中添加引号。