바쉬의 $PS1
에 적합한 문자열을 만들기 위해 svn info
을 구문 분석하는 스크립트 (source)가 있습니다. 불행히도 이것은 Perl 5.8.8을 사용하고있는 하나의 시스템에서는 작동하지 않습니다 - 단지 매치 대신 모든 라인을 출력합니다. Perl 5.8.8은 다음과 같을 것입니다.Perl 5.8.8에서 대치 한 부분 만 반환합니다. (예 : Perl "p"정규식 수정 자 상당)
__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
}
5.10 펄로부터의 출력 만 공간 괄호, 지점명, 태그 명이나 trunk
중 하나와 단부 괄호를 포함한다. Perl 5.8.8 (최종 p
제외)의 출력에는 에이 포함되어 있으며 svn info
출력의 각 공백으로 분리 된 부분을 괄호로 묶은 버전입니다.
가능한 해결 방법은 svn
과 perl
명령 사이에 간단한 grep '^URL: '
이 포함되어 있지만, 각 Bash 프롬프트마다이 명령이 실행되므로이를 피하기 위해 노력하고 있습니다.
무엇을하려고하는지 설명 할 수 있습니까? 입력 파일과 예상되는 출력을 제공하십시오. – justintime
어쩌면 나는 갇혀있는 레코드처럼 들릴지 모르지만, "입력 파일을주고 예상 한 결과를 제공하십시오." 당신은 많은 절반의 구운 해결책을 제시하고 있지만 당신이 원하는 것을 해결할 수는 없습니다. – justintime