Как использовать переменную из `read` в качестве аргумента для другой программы? - PullRequest
0 голосов
/ 25 июля 2011

Вот мой сценарий:

read -p 'commit message: ' msg
svn status | grep ^\? | awk '{ print $2 }'  | egrep "\.(py|js|html|png|jpg)$" | xargs svn add
svn ci -m "$msg"

Когда я его запускаю, я получаю эту ошибку:

mark@mark-ubuntu:~/myproject$ ./commit.sh 
commit message: test
svn: Try 'svn help' for more info
svn: Not enough arguments provided

Я действительно мало знаю о программировании оболочки.Сообщение не передается svn ci правильно или как?Как я могу заставить это работать?


mark@mark-ubuntu:~/myproject$ bash -x commit.sh 
+ read -p 'commit message: ' msg
commit message: hello world
+ egrep '\.(py|js|html|png|jpg)$'
+ xargs svn add
+ awk '{ print $2 }'
+ grep '^?'
+ svn status
svn: Try 'svn help' for more info
svn: Not enough arguments provided
+ svn ci -m 'hello world'

1 Ответ

2 голосов
/ 25 июля 2011

Линия SVN CI выглядит нормально.Вы можете попробовать запустить его с помощью bash -x, чтобы увидеть, где находится ошибка:

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