У меня есть следующая функция. Когда я запускаю это, я получаю ошибку Default Message command not found
.
commit {
${1:-Default Message}
echo "git add ."
git commit -m '$1'
}
Я просто не хочу устанавливать значение строки по умолчанию в последней команде, если не указан параметр.
Вот как я собираюсь использовать функцию в терминале:
commit
результат должен быть: git commit -m 'Default Message'
commit some random message
результат должен быть: git commit -m 'some random message'
Пожалуйста, руководство.
Некоторые проблемы здесь:
()
после имени функции${1:-Default Message}
возвраты любой содержание $1
(если это дано), или данное значение по умолчанию.Примечание: это возвращает его. Таким образом, это совпадает с, если Вы записали:
if [ -n "$1" ]; then
$1
else
Default Message
fi
удар является немым, таким образом, он попытается просто выполнить "сообщение По умолчанию" как команду. Очевидно, нет такой команды, следовательно Ваше сообщение об ошибке.
git commit -m '$1'
) будет использовать литерал $1
(читайте: один доллар) как сообщение о фиксации, потому что одинарные кавычки использовались и они не разворачивают переменные в них.Попробуйте это вместо этого:
commit() {
msg="${1:-Default Message}"
echo "git add ."
git commit -m "$msg"
}
Или:
commit() {
echo "git add ."
git commit -m "${1:-Default Message}"
}