You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向GNU Bash数组追加元素并将其作为参数传递给ELF可执行文件

你的代码存在两处Bash数组操作的语法错误,直接导致参数被合并为单个字符串传递:

  1. 数组追加元素的语法错误
    你当前使用的bismon_hello_args+=$f是对数组的首个元素做字符串拼接,而非往数组中新增独立元素。Bash中往数组追加元素的正确语法为数组名+=("元素值"),只有用括号包裹待添加的内容,才会被识别为新增的数组项。
  2. 数组展开传参的语法错误
    调用程序时你写的./bismon $bismon_hello_args只会展开数组的第一个元素,无法传递所有数组项。正确的多参数展开写法是"${数组名[@]}",这种写法会将每个数组元素作为独立的命令行参数传递,同时可以正确保留参数内部的空格、特殊符号等内容。

修正后的循环逻辑代码:

for f in "$@"; do
    case "$f" in
    --bismon*) bismon_hello_args+=("$f");;
    --asm) export BISMON_PLUGIN_ASMOUT=/tmp/gcc10_metaplugin_BMGCC.s;;
    --gcc=*) export BISMON_GCC=$(echo $f | /bin/sed -e s/--gcc=//);;
    esac
done

修正后的程序调用代码:

./bismon "${bismon_hello_args[@]}" &

内容的提问来源于stack exchange,提问作者Basile Starynkevitch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 06:15:04