sed や awk などの外部シェル コマンドに頼らずに、svn info の出力を解析しようとしています。これらのツールを使用すると、ハートビートでこれを実行できることがわかっているため、これは純粋に学術的なものです。
私が解析している出力は次のとおりです。
Path: .
URL: svn://brantwinter@192.168.10.222/handbrake_batch/trunk/handbrake
Repository Root: svn://ilium007@192.168.10.222/handbrake_batch
Repository UUID: 99c2cca7-102b-e211-ab20-02060a000c0b
Revision: 6
Node Kind: directory
Schedule: normal
Last Changed Author: ilium007
Last Changed Rev: 6
Last Changed Date: 2012-11-10 19:00:35 +1000 (Sat, 10 Nov 2012)
これが私のコードです:
#!/bin/bash
#set -x
OLD_IFS="$IFS"
IFS=$'\r\n'
# Get the output from svn info into an array
SVN_INFO_ARR=(`svn info`)
COUNT=0
for i in ${SVN_INFO_ARR[@]}; do
echo $COUNT
echo "$i"
(( COUNT++ ))
done
# Get the element that says "Revision: 6"
REV_ARR=${SVN_INFO_ARR[4]}
# Testing the loop over what should be a two element array
COUNT=0
for i in ${REV_ARR[@]}; do
echo $COUNT
echo "$i"
(( COUNT++ ))
done
#This should give the number 6 (or string or something)
REV_NUMBER=${REV_ARR[1]}
echo ${REV_NUMBER}
### INCREMENT REVISION NUMBER FROM ARRAY ELEMENT ###
#NEW_REV_NUMBER= ????? + 1
IFS="$OLD_IFS"
文字列を取得できるようにしたい:
リビジョン: 6
SVN コミットに含めるリリース txt ファイルを更新できるように、6 を取り出して 1 ずつ増やします。
私は今、その 6 を 7 に変えようと 1 時間試みましたが、それができないので馬鹿のように感じました。