## 问题描述 脚本执行完成后出现错误: ``` /dev/fd/63: line 1: fifo: unbound variable ``` ## 根本原因 在 oci/create_instance.sh:364 行使用了: ```bash trap 'rm -f "$fifo"' EXIT ``` 单引号导致 `$fifo` 在 EXIT 时才展开,但此时 `fifo` 是 local 变量, 已超出作用域。由于 `set -u` 严格模式,访问未定义变量会报错。 ## 修复方案 将单引号改为双引号: ```bash trap "rm -f \"$fifo\"" EXIT ``` 这样 `$fifo` 在 trap 设置时就会展开为实际的文件路径(如 /tmp/tmp.xxx), trap 命令会记录具体路径而非变量名,避免作用域问题。 ## 影响 - ✅ 修复 EXIT trap 的 unbound variable 错误 - ✅ 保持功能不变(临时 FIFO 文件仍会正确清理) - ✅ 与 set -euo pipefail 严格模式兼容
14 KiB
14 KiB