私のパッケージがmakeコマンドにあるディレクトリのレイトバインディングをしようとしています。基本的に、WITH_OPTIONS コマンド ラインには、configure スクリプトと同様に、スペースで区切られたリンク オプションのリストが含まれています。問題は、このスクリプトへのコマンド ラインが解析された後、ディレクトリが後でバインドされることです。したがって、適切な変数バインディングを取得するには、テンプレート文字列を評価する必要があります。Bash FAQ、特に記事50をグーグルで読んで読むことができる最も近いものは次のようなものです:
MAKE_INSTALL="make install"
TEMPLATE=('--first=$a' '--second=$b' '--third=$a')
# Parse Parameters
a=/first/path
b=/second/path
TEMPLATE_REPL=$( eval echo ${TEMPLATE[@]} )
CMD="$MAKE_INSTALL WITH_OPTIONS=\"$TEMPLATE_REPL\""
$CMD
$CMD に含まれると予想されるのは、1 つのコマンドと 2 つのパラメーターを含む文字列です。
make install WITH_OPTIONS="--first=/first/path --second=/second/path --third=/first/path"
ただし、引用符で囲まれた部分を保持するためにbashを取得できないため、次のように解析し続けます。
make install 'WITH_OPTIONS="--first=/first/path' '--second=/second/path' '--third=/first/path"'
これは明らかに完全に間違っており、実行するとコマンドラインが正しく表示されません。
私は何が欠けていますか?引用符の間のビットを 3 ではなく 1 つのパラメーターとして保持するにはどうすればよいですか?