我经常运行一个简单的 bash 命令:
rpm -Uvh --define "_transaction_color 3" myPackage.rpm
哪个工作正常。
但现在我正在尝试将其编写成 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[@]}
.
到目前为止,我的尝试没有奏效。
显然,我想要的非常简单。我只是不确定如何完成它。
如何让 bash--define
正确处理我的论点?