当前位置: 首页 > 面试题库 >

用bash设置参数

呼延光明
2023-03-14
问题内容

我经常运行一个简单的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正确处理我的论点?


问题答案:

问题在于变量替换后不处理引号。因此,看起来您正在尝试定义名为的宏'_transaction_color

尝试使用数组:

INSTALL_OPT=(-Uvh --define '_transaction_color 3')

然后:

"$INSTALL_CMD" "${INSTALL_OPT[@]}" myPackage.rpm

放在${INSTALL_OPT[@]}双引号中以获得重新报价很重要。



 类似资料:
  • 参数设置分为四部分:网站基本信息、统计代码、权限管理 和 安全设置 1.基本信息 1)网站基本信息:包括网站名称、网站简介、网站地址、图标样式设置等基本参数 2)统计图标显示:是指网站下方会出现我要啦的统计代码图标,可以对该图标的显示样式进行选择 (建议:设置统计图标,方便网站管理者点击图标进入报表查看统计数据) 3)页面地址显示:自定义选择是否在“入口网址”和“页面浏览”栏目中显示被浏

  • 4.6.1 rosrun设置参数 rosrun 在启动节点时,也可以设置参数: 语法: rosrun 包名 节点名称 _参数名:=参数值 1.设置参数 启动乌龟显示节点,并设置参数 A = 100 rosrun turtlesim turtlesim_node _A:=100 2.运行 rosparam list查看节点信息,显示结果: /turtlesim/A /turtlesim/backg

  • 1.1 常见配置 类型 名称 功能 路径配置 路径配置 配置 ES 存储数据所在目录,生产环境中建议使用挂载单独的磁盘或磁盘矩阵。 1.2 线程池配置 1.2.1 配置值 大小建议和 cpu 的逻辑数(物理CPU个数 每颗物理CPU的核数 超线程数)保持一致。另外,可以通过查看 reject 值查看当前线程数是否合理,若 reject 大于0,则说明线程数或 queue 过小。当某个线程池acti

  • 问题内容: 在中,我有以下脚本正在工作: Bash中的功能等效于什么? 有直接的模拟吗?环境变量用于查找可执行文件。 问题答案: 将VAR设置为value。如果需要空格,请用单引号将其引起来。如果要对变量进行插值,请使用双引号,例如。

  • 我对lua脚本的功能很陌生。我试过用, 操作系统。执行(“导出MY_VAR=10”) 伊奥。popen(“导出MY_VAR=10”) 从 lua 脚本。 我尝试在执行lua脚本后使用 echo $MY_VAR 从 shell 中读取MY_VAR变量,但我没有看到MY_VAR设置为 10。 如何使用lua脚本设置环境变量?

  • 在 Linux 中,语言选择像导出变量一样简单。这是正确的,通过查看这个变量,程序决定如何和你交流。当然,为了使其工作,程序必须支持区域设置,并将其翻译成可用和安装的语言。让我们通过安装法语区域设置,看看它的工作原理。 现在,你将学习如何安装和选择一个区域设置。 这样做 1: echo $LANG 2: locale 3: man man # press q to exit man 4: sudo