Я хочу написать скрипт updategit.sh
для Unix / Linux с параметром по умолчанию для фиксации в git. updategit.sh
должен быть POSIX-совместимым. Я надеюсь, что POSIX решит некоторые из худших несовместимостей оболочек Unix / Linux.
Синтаксис: updategit.sh {$1}
{$1}
означает, что параметр $1
является необязательным.
1) Если в updategit.sh
параметры не передаются, последним действием в сценарии должно быть:
git commit -m 'Patches #1023, #1016.4 .. .17 reapplied. See e-mail from Paul (paul@sh.ts) send at 2016-01-26 08:56'
Достаточно ли передать его в одинарных кавычках, если в тексте нет ни одной кавычки?
2) Должна быть возможность передать необязательный параметр $1
в updategit.sh
. Естественный синтаксис заключался бы в том, чтобы заключить параметр в двойные кавычки. Я думаю, что это будет невозможно. Я хочу иметь возможность получить как можно больше updategit.sh
без разрушения оболочки входным параметром и сбоя команды из-за того, что оболочка не работает с вводом.
Естественный синтаксис будет примерно таким:
$ ./updategit.sh "New template GetShape()"
$ ./updategit.sh "Patch #312.5 applied. See Eve's email (eve@stoneage.nix) from 2016-02.29 09:43"
$ ./updategit.sh "Round to .5 fixed"
$ ./updategit.sh
Понятно, что оболочка будет портить ввод. Насколько близко я мог прийти к "естественному" синтаксису без неудачного выполнения git commit -m $1
? AFAIK команда git commit -m $1
должна быть переписана во что-то более устойчивое.