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

Bash脚本函数实现:子程序成功输出结果、失败屏蔽错误并输出指定内容

正确的Bash函数实现
read_i2s_register () {
    local RESULT=$(/usr/bin/i2sget -y 1 0x55 0x08 2>/dev/null)
    if [ $? -eq 0 ]; then
        echo "${RESULT}"
    else
        echo "SUPPRESSED"
    fi
}

问题修正说明

  • 屏蔽标准错误输出:在调用i2sget时添加2>/dev/null,将标准错误(文件描述符2)重定向到空设备,彻底阻止失败时的"Error: Read failed"信息输出到终端。
  • 修复语法错误:原代码中if [ $? -eq 0 ]:的冒号是语法错误,必须改为分号;(或换行单独写then),否则Bash会解析失败,导致else分支无法触发。
  • 语法优化:用$()替代反引号`捕获命令输出,可读性更强且支持嵌套场景。
  • 避免变量拆分:给echo的变量引用加上双引号"${RESULT}",防止输出内容包含空格或特殊字符时出现意外拆分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 14:10:07