it-swarm.com.de

Was macht "set -" in diesem Dockerfile-Einstiegspunkt?

Ich versuche zu verstehen, was dies Docker-Einstiegspunkt .

Es scheint mir, dass dies ein sehr verbreitetes Muster beim Schreiben von Dockerfiles ist, aber meine Bash-Fähigkeiten sind begrenzt und ich habe keine Ahnung von all den speziellen Bash-Symbolen Kung Fu.

Außerdem ist es schwierig, nach "-", "$!" etc. Wie heißen diese in der Bash-Welt?

Zusammenfassend, was versucht die folgende Zeile zu tun?

if [ "${1#-}" != "$1" ]; then
  set -- haproxy "[email protected]"
fi
51
Lucas Pottersky

Der Befehl set (wenn keine Optionen festgelegt werden) legt die Positionsparameter fest, z

$ set a b c
$ echo $1
a
$ echo $2
b
$ echo $3
c

Der -- Ist der Standard "Behandle nichts danach als Option".

Die "[email protected]" Sind alle vorhandenen Positionsparameter.

Also die Reihenfolge

set -- haproxy "[email protected]"

Setzt das Wort haproxy vor $1$2 Usw.

z.B

$ echo $1,$2,$3
a,b,c
$ set -- haproxy "[email protected]"
$ echo $1,$2,$3,$4   
haproxy,a,b,c
67
Stephen Harris