У меня есть скрипт ( source ) для разбора svn info
для создания подходящей строки для Bash's $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 (без окончательного p
) содержат эту плюс версию в скобках каждой разделенной пробелами части вывода svn info
.
Возможный обходпростой grep '^URL: '
между командами svn
и perl
, но я надеялся избежать этого, так как это будет выполняться для каждого приглашения Bash.