использование удара для получения числа пересмотра от подрывной деятельности

Я хочу записать сценарий оболочки в ударе для развертывания веб-сайтов от репозитория SVN. Когда я развертываю веб-сайт, я называю экспортируемый каталог website_name-Rrevision_number. Я хотел бы, чтобы сценарий удара автоматически переименовал экспортируемый каталог, таким образом, он должен узнать о текущем числе пересмотра из каталога экспорта. Если я работаю

$> svn info http://svn-repository/trunk

Path: trunk
URL: http://svn-repository/mystery/trunk
Repository Root: http://svn-repository/mystery
Repository UUID: b809e6ab-5153-0410-a985-ac99030dffe6
Revision: 624
Node Kind: directory
Last Changed Author: author
Last Changed Rev: 624
Last Changed Date: 2010-02-19 15:48:16 -0500 (Fri, 19 Feb 2010)

Число после строки Revision: то, что я хочу. Как я получаю это в переменную удара? Сделайте я действительно представляю парсинг в виде строки вывода от svn info команда?

16
задан user151841 19 February 2010 в 21:12
поделиться

5 ответов

Используйте svnversion. Это выведет номер/диапазон ревизий с минимальным количеством лишнего мусора

32
ответ дан 30 November 2019 в 15:10
поделиться

просто используйте одну команду awk. намного проще.

var=$(svn info http://svn-repository/trunk | awk '/^Revision:/{print $2}')
5
ответ дан 30 November 2019 в 15:10
поделиться
REVISION=`svn info http://svn-repository/trunk |grep '^Revision:' | sed -e 's/^Revision: //'`

Это просто, хотя и неэлегантно.

26
ответ дан 30 November 2019 в 15:10
поделиться
svn info http://svn-repository/trunk | grep Revision | tr -d 'Revison: '

Выводит ревизию Используйте обратные кавычки в сценарии оболочки, чтобы выполнить это и присвоить результаты переменной:

REVISION=`svn info http://svn-repository/trunk | grep Revision | tr -d 'Revison: '`
1
ответ дан 30 November 2019 в 15:10
поделиться

Существует, вероятно, дюжина различных способов сделать это, но я бы выбрал что-то простое, например:

revision="$(svn info http://svn-repository/trunk | grep "^Revision:" | cut -c 11-)"
0
ответ дан 30 November 2019 в 15:10
поделиться