Как обрабатывать ошибки SVN с помощью сценария оболочки? - PullRequest
0 голосов
/ 29 марта 2011

Дорогие все,
Я пытаюсь выполнить svn copy с помощью сценария оболочки.Проблема в том, что я должен обработать svn ошибки, такие как 403 .Вот краткое объяснение проблемы:
Моя структура SVN выглядит следующим образом:

http://localhost/myproj/branches/dev/dev1
                                /testing/test1
                                /maintainance/m1

Я пытаюсь написать сценарий оболочки для решения этой задачи.
Ожидаемое поведение моего сценария оболочки:

Enter the Source url to be copied: http://localhost/myproj/branches/dev/dev1
Enter the new url name:http://localhost/myproj/branches/testing/test2

Я не хочу, чтобы мой скрипт показывал пользователям актуальную ошибку SVN, если пользователь не авторизован в тестировании ветви, тогда SVN показывает 403 запрещенную ошибку ,все, что я хочу, это сказать пользователю, что Пользователь не имеет доступа !!Не удалось скопировать, свяжитесь с администратором .Есть ли возможность перенаправить ошибку svn в какую-либо переменную и в зависимости от значения этой переменной покажет сообщения пользователю.Я хочу сделать это в сценарии оболочки .. пожалуйста, направьте меня.

Заранее спасибо
Srikanth B

1 Ответ

3 голосов
/ 29 марта 2011

Перенаправьте свои выходы, используя > и 2>.В качестве очень простого примера:

#!/bin/ksh
svn copy $1 $2 2>&1 | grep '403 forbidden'
if [[ $? -eq 0 ]]
then
  #The grep command was successful, i.e. '403 forbidden' was in the svn output
  echo No access.
  exit 1
else
  echo Complete
  exit 0
fi

Это очень просто и имеет целый ряд других проблем, в частности полное предотвращение любых других ошибок, возникающих в команде svn,но должен дать вам представление о том, как это может работать.

Взгляните на страницу Wikibooks на Скрипты Bourne Shell: файлы и потоки для получения дополнительной информации о том, как это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...