我有一个脚本(源代码)来解析svn info
以创建适合 Bash 的字符串$PS1
。不幸的是,这在我正在使用的运行 Perl 5.8.8 的系统上不起作用 - 它输出所有行而不是仅输出匹配项。Perl 5.8.8 相当于什么?
__svn_ps1()
{
local result=$(
svn info 2>/dev/null | \
perl -pe 's;^URL: .*?/((trunk)|(branches|tags)/([^/]*)).*;\2\4 ;p')
if [ -n "$result" ]
then
printf "${1:- (%s)}" $result
fi
}
Perl 5.10 的输出仅包含空格、括号、分支名称、标记名称或 之一trunk
,以及结束括号。Perl 5.8.8 的输出(没有 final p
)包含这个以及输出的每个空格分隔部分的括号版本svn info
。
一种可能的解决方法是在and命令grep '^URL: '
之间进行简单的处理,但我希望避免这种情况,因为这将针对每个 Bash 提示符执行。svn
perl