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

Bash脚本将命令输出赋值给变量时报No such file or directory错误

报错原因

该问题由Bash变量赋值的语法规则触发:

  • Bash要求变量赋值时等号两侧不能有任何空格,你给出的代码中第二条赋值语句latest_src_change= "$(...)的等号后存在多余空格,不符合语法要求。
  • 当等号后存在空格时,Bash不会将该行识别为赋值操作:会把latest_src_change=识别为给后续命令临时设置的环境变量,把$(...)的执行结果(也就是你场景中的2021/11/18)当作要运行的命令,系统找不到对应名称的可执行文件,因此抛出No such file or directory报错。
  • 第一条赋值语句的等号两侧没有空格,符合语法规则,因此不会触发相同报错。
修复方法

删除第二条语句等号后的空格即可,修正后的代码如下:

latest_build_change="$(p4 changes -s submitted ${PERFORCE_BASE}/$branch_name/build/... -m 10 | head -1 | cut -d' ' -f4)"
latest_src_change="$(p4 changes -s submitted ${PERFORCE_BASE}/$branch_name/src/... -m 10 | head -1 | cut -d' ' -f4)"
额外提示

不管是直接赋值字符串,还是用命令替换、算术替换的结果赋值,都需要严格遵守等号两侧无空格的规则,避免同类解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:45:05