Estoy tratando de entender lo que hace este punto de entrada de Docker .
Me parece que es un patrón muy común cuando escribo Dockerfiles, pero mis habilidades de bash son limitadas y no tengo idea de todos los símbolos especiales de bash kung fu.
Además, es difícil buscar en Google "-", "$!" ¿Cómo se llaman estos en bash world?
Para resumir, ¿cuál es la línea que sigue tratando de hacer?
if [ "${1#-}" != "$1" ]; then
set -- haproxy "$@"
fi
shell-script
set
Lucas Pottersky
fuente
fuente

set -- -z 2 3 4yset -z 2 3 4. El--deja de-aser interpretado como una opción. En este caso no es necesario , pero es una "buena práctica" adquirir el hábito de usar--cuando esté seguro de lo que sigue :-)set -- $arg1 $arg2obtiene un script dentro de otro script, el uso permitirá que su script de origen lea los argumentos, de lo contrario, solo Bash admite pasar argumentos directamente a un script de origen (y eso puede ser difícil de notar).