Zsh函数传参异常:调用picofl传递myblink.elf报错
问题分析与解决方法
问题根源
你的picofl函数中,-c参数后的命令使用单引号包裹,而zsh里单引号会完全阻止变量解析,导致$1不会被替换成你传入的myblink.elf,openocd实际收到的是字面量$1,这就触发了“意外参数”错误。
修复方案
有两种可行的修改方式:
- 将单引号替换为双引号,同时转义命令内部的双引号:
function picofl() { openocd -f interface/picoprobe.cfg -f target/rp2040.cfg -c "program \"$1\" reset exit" }
- 用单引号拼接字符串,把
$1放在单引号外部:
function picofl() { openocd -f interface/picoprobe.cfg -f target/rp2040.cfg -c 'program "'"$1"'" reset exit' }
内容的提问来源于stack exchange,提问作者Anton A
相关产品推荐
相关产品推荐

