Я пытаюсь настроить функцию bash, чтобы я мог ввести несколько параметров и создать запрос git pull:
gpreq "<title>" "<ticketnumber>" "<release>" "<briefdescription>"
Я пробовал обе эти функции безрезультатно:
gpreq () {
hub pull-request -m "$1\n\n Ticket: https://ticketsystem.net/issues/$2\n Target Release: $3\n Description: $4" ; }
а также
gpreq() {
STR = "${1}"$'\n\n Ticket: https://ticketsystem.net/issues/'$"${2}"$'\n Target Release: '$"${3}"$'\n Description: '$"${4}"
hub pull-request -m "${STR}" ;
}
По какой-то причине разрывы строк, похоже, не работают, вместо этого \ n проходит как фактические символы. Любая помощь будет оценена по достоинству!
Хм, цитирование ANSI-C было добавлено в bash в версии 2.0 - несомненно, ваша версия bash более свежая, чем эта. (git.savannah.gnu.org/cgit/bash.git/tree/NEWS?h=bash-4.4#n17 54)
Я использую Bash, который поставляется с загрузкой Git для Windows (git-scm.com) - говорит, что это 4.4.19.





(Я не знаю, что такое хаб)
\ n - это символ, преобразованный командой некоторый в новую строку.
попробуйте вставить новые строки напрямую
hub pull-request -m "$1
Ticket: https://ticketsystem.net/issues/$2
Target Release: $3
Description: $4"
или используйте некоторую функцию, которая интерполировала \ n:
STR = "$1\n\n Ticket: https://ticketsystem.net/issues/$2\n Target Release: $3\n Description: $4"
STR
hub pull-request -m "`printf "${STR}"`"
printf ${STR} оставляет переменную без кавычек и уничтожает форматирование пробелов. Кроме того, следует учитывать, что строка может содержать символы %, что приведет к ошибкам printf. Я не рекомендую использовать printf без явной строки формата.
Сработало отлично! К вашему сведению, hub - это оболочка для git для использования на GitHub (github.com/github/hub).
Какая у вас версия bash (
bash --version)? У меня есть bash 4.3, и он отлично справляется с цитированием ANSI-C.