iTerm2启动报错“bad floating point constant”求助
解决iTerm2 Shell Integration启动报错"bad floating point constant"
问题原因
你的系统版本是MacOS Ventura 13.0.1,原代码尝试用printf "%.0f"直接处理带两个小数点的版本号字符串(如13.0.1),但zsh的printf无法将这种格式解析为合法浮点数,因此触发报错。
解决方案
修改~/.iterm2_shell_integration.zsh第32行的代码,替换为以下任意一种实现:
方案1:提取主版本号(如13)
ver=$(sw_vers | awk '/ProductVersion/ {gsub(/[^0-9.]/, "", $2); split($2, v, "."); print v[1]}')
方案2:将版本号转为纯整数(如1301)
ver=$(sw_vers | awk '/ProductVersion/ {gsub(/[^0-9.]/, "", $2); gsub(/\./, "", $2); print $2}')
方案3:保留一位小数后转整数(结果仍为13)
ver=$(printf "%.0f" $(sw_vers | grep ProductVersion | cut -d':' -f2 | tr -d ' ' | sed 's/\./ /2' | awk '{print $1"."$2}'))
修改完成后保存文件,重启iTerm2即可消除报错。
内容的提问来源于stack exchange,提问作者kiyomi
相关产品推荐
相关产品推荐

