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

Arch系统启动Bash Shell时出现整数表达式预期错误求助

解决Arch启动Bash时的"-bash: [: : integer expression expected"错误

问题定位

错误提示源于整数表达式匹配失败,问题出在~/.bash_profile的这行判断:

if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
        exec startx
fi

当在非本地TTY环境(比如xrdp远程会话)启动Bash时,XDG_VTNR变量未被设置,为空值。[命令执行-eq整数比较时,空值无法被识别为有效整数,因此抛出错误。

修复方案

修改~/.bash_profile中的条件判断,确保XDG_VTNR变量存在且为有效整数后再进行比较,以下两种写法任选其一:

写法一:增加变量非空检查

# ~/.bash_profile

[[ -f ~/.bashrc ]] && . ~/.bashrc

if [ -z "${DISPLAY}" ] && [ -n "${XDG_VTNR}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
        exec startx
fi

写法二:用默认值规避空值

通过参数扩展给XDG_VTNR设置默认值0,即使变量为空也能完成整数比较:

# ~/.bash_profile

[[ -f ~/.bashrc ]] && . ~/.bashrc

if [[ -z "${DISPLAY}" && "${XDG_VTNR:-0}" -eq 1 ]]; then
        exec startx
fi

验证修改

保存修改后,重启Bash或执行source ~/.bash_profile,错误提示应不再出现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 16:30:02