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

Mac终端可运行的非交互式Bash命令在Docker终端执行失败求助

问题解决:Docker终端执行脚本出现read: Illegal option -s错误

问题根源

你的4icli脚本里使用了Bash专属的read -s选项(用于隐藏输入内容),但Docker容器默认的/bin/sh是Dash(轻量级shell,不支持Bash的部分扩展语法),而Mac本地的/bin/sh实际是Bash的软链接,所以本地能正常运行,Docker里报错。

解决方案

方案1:修改4icli脚本的执行shell

找到4icli脚本的第一行(shebang),把:

#!/bin/sh

改成:

#!/bin/bash

这样脚本会强制用Bash执行,就能支持read -s了。

方案2:用Bash直接运行命令和脚本

如果没法修改4icli,可以在Docker终端里用Bash来执行整个命令链:

bash -c '{ echo "ar"; sleep 1; echo "br"; } | bash ./4icli configure'

方案3:给Docker镜像安装Bash(如果镜像默认没有)

如果你的Docker镜像里没有Bash,先安装它(以Debian/Ubuntu系镜像为例):

apt-get update && apt-get install -y bash

验证

执行修改后的命令后,应该能和Mac本地一样走到凭证验证步骤,不会再出现read选项错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 11:30:49