と引数を設定します。は、私は頻繁に簡単なbashコマンドを実行してbashを
しかし、今、私はbashのファイルにスクリプトにそれをしようとし、それをより柔軟にしています:
#!/bin/bash
INSTALL_CMD=rpm
INSTALL_OPT="-Uvh --define '_transaction_color 3'"
${INSTALL_CMD} ${INSTALL_OPT} myPackage.rpm
はしかし、これはエラーを生成し続ける:
error: Macro % has illegal name (%define)
エラーが来ていますどのように--define
から引用した_transaction_color
が処理されます。
私はINSTALL_OPT
という配列を${INSTALL_OPT[@]}
で処理しても、さまざまなエスケープやさまざまなフレーズを試しました。
これまでのところ、私の試みはうまくいきませんでした。
明らかに、私が望むものは非常に簡単です。私はそれを達成する方法だけではわかりません。
--define
引数を適切に処理するためにbashを取得するにはどうすればよいですか?
あなたは 'INSTALL_OPTを= '試してみました - UVH --define _transaction_color 3''、右? –
@ sampson-chen:それを試してみました。 "エラー:マクロ%_transaction_colorに空のボディがあります"。 – abelenky
これは、bashがあなたの引数を '-Uvh'と' --define'と '' _transaction_color'と '3''で読み込むためです。この場合、配列を使用する必要があります(下のBarmarの答えに示されています): 'INSTALL_OPT =( - Uvh --define '_transaction_color 3')'。そして、$ {INSTALL_CMD} $ {INSTALL_OPT [$ @]} "myPackage.rpm'が動作します(二重引用符で囲まれています)。 –