이 Docker 진입 점이 무엇을 이해하려고합니다 .
Dockerfiles를 작성할 때 매우 일반적인 패턴 인 것처럼 보이지만 내 배쉬 기술은 제한되어 있으며 모든 특수 배쉬 기호 쿵푸에 대해 전혀 알지 못합니다.
또한, “-“, “$!”에 대해 Google을 사용하기가 어렵습니다. 등등. 이것은 bash 세계에서 무엇이라고 불리는가?
요약하자면, 다음과 같은 행은 무엇입니까?
if [ "${1#-}" != "$1" ]; then
set -- haproxy "$@"
fi
답변
set
명령 (옵션을 설정하지 않는 경우)의 위치 파라미터를 설정 예
$ set a b c
$ echo $1
a
$ echo $2
b
$ echo $3
c
는 --
표준 “이 옵션으로이 다음 치료하지 아무것도 할”입니다
는 "$@"
기존의 모든 위치 paramters 있습니다.
그래서 순서
set -- haproxy "$@"
등 haproxy
앞에 단어 를 넣을 것 입니다 $1
$2
.
예 :
$ echo $1,$2,$3
a,b,c
$ set -- haproxy "$@"
$ echo $1,$2,$3,$4
haproxy,a,b,c