我试图在bash捕捉一条道路的一部分:
输入:/Users/foo/.virtualenvs/venv-test-server
代码:
#!/bin/zsh
regex="^.*\/venv-(.*)$"
if [[ $VIRTUAL_ENV =~ $regex ]] ; then
echo "Matched!"
echo ${BASH_REMATCH[1]}
fi输出:Matched!
但火柴没有打印出来。为什么?
发布于 2015-07-29 08:51:36
脚本指定的是zsh而不是bash
#!/bin/bash
^^^^如果要使用zsh,则需要在使用=~之前设置BASH_REMATCH选项
setopt KSH_ARRAYS BASH_REMATCH发布于 2015-07-29 17:08:53
zsh中的等效数组是match。
% [[ foo_bar =~ (.*)_(.*) ]]
% print $match[1]
foo
% print $match[2]
barhttps://stackoverflow.com/questions/31695600
复制相似问题