Я пытаюсь понять, что делает эта точка входа в Docker .
Мне кажется, что при написании Dockerfiles это очень распространенный паттерн, но мои навыки работы с bash ограничены, и я понятия не имею о всех специальных символах bash kung fu.
Кроме того, трудно гуглить по "-", "$!" и т.д. Как они называются в мире Bash?
Подводя итог, что пытается сделать линия ниже?
if [ "${1#-}" != "$1" ]; then
set -- haproxy "$@"
fi
shell-script
set
Лукас Поттерский
источник
источник
set -- -z 2 3 4
иset -z 2 3 4
.--
Останавливает-a
интерпретируется в качестве опции. В этом случае в этом нет необходимости , но это «хорошая практика», чтобы привыкнуть использовать,--
когда вы точно знаете, что следует :-)set -- $arg1 $arg2
позволит вашему исходному сценарию считывать аргументы, в противном случае только Bash поддерживает передачу аргументов непосредственно в исходный сценарий (и это может быть сложно заметить).