В моей предыдущей question я создал команду, которая возвращается Svn файлов по шаблону:Run команда Баш как функция
svn st | grep SomeFolderA | awk {'print $2'} | xargs svn revert
Теперь я хочу, чтобы сделать это команда, которая принимает аргумент (файл шаблона) и запускает указанную выше команду используя аргумент вместо SomeFolderA
. Я попробовал, добавив это мой .bash_profile
файл:
function revert() {
"svn st | grep '$1' | awk '{print \$2}' | xargs svn revert" ;
}
Когда я бегу revert SomeFolderA
я получаю этот выход:
-bash: svn st | grep 'SomeFolderA/' | awk '{print $2}' | xargs svn revert: No such file or directory
Я также попытался использовать полный путь для svn
, но он по-прежнему не работает. Что мне не хватает?
'" СВН ст | grep '$ 1' | awk '{print \ $ 2}' | xargs svn revert "' пытается выполнить команду с этим именем. Удалите кавычки. Посмотрите http://www.linuxjournal.com/content/return-values-bash-функции о том, как функции bash возвращают значения. –
Возможный дубликат [Как вернуть строковое значение из функции bash] (http://stackoverflow.com/questions/3236871/how-to-return-a-string-value-from-a-bash-function) –
@ivan_pozdeev - Я сделал кое-что, и я признаю, что сценарии bash далеки от моей сильной стороны. Я думаю, что легко понять, что это не вопрос, написанный без задумки. SO подходит для решения именно этих проблем, а не только проблем, которые никогда не были замечены. Мы используем сообщество, чтобы улучшить нашу работу быстрее. Получив этот ответ, вы поможете мне как сэкономить несколько часов, так и научиться. Я действительно не понимаю, как вопрос, который вы опубликовали, является дубликатом. Угадайте, что я нообер, чем сценарий reg bash. – Avi