私はこれを理解しようとしています Dockerエントリーポイントが行うこと 。
これはDockerfileを作成するときの非常に一般的なパターンのようですが、私のbashスキルには限界があり、特別なbashシンボルであるカンフーをすべて理解していません。
また、「-」、「$!」でグーグル検索するのは難しいetc.これらはbashの世界で何と呼ばれていますか?
要約すると、以下の行は何をしようとしていますか?
if [ "${1#-}" != "$1" ]; then
set -- haproxy "$@"
fi
set
コマンド(オプションを設定しない場合)は、位置パラメータを設定します。
$ set a b c
$ echo $1
a
$ echo $2
b
$ echo $3
c
--
は標準であり、「これに続くものはオプションとして扱わない」
"$@"
は、すべて既存の位置パラメーターです。
したがって、シーケンス
set -- haproxy "$@"
haproxy
を$1
$2
などの前に置きます。
例えば
$ echo $1,$2,$3
a,b,c
$ set -- haproxy "$@"
$ echo $1,$2,$3,$4
haproxy,a,b,c