bash - 对交互式脚本使用 yes 会导致退出代码 141

标签 bash printf circleci

我需要在 CircleCI 中运行一个命令,它将预先确定的参数传递给以下命令。当命令只需要字符串或整数时,它可以很好地使用:

printf "arg1\narg2\n" | my_command

但是,如果“我的命令”希望用户使用箭头键来选择一个选项,然后是返回键,则此方法将失败。

这是我所描述的一个例子:
? Which variation would you like to apply? (Use arrow keys)
❯ A
  B
  C

所以我尝试了另一种选择,找到了一个名为 yes 的漂亮工具:
yes | my_command

这实际上会起作用(并选择选项 A),但由于退出代码 141,它导致 CircleCI 构建失败。据我所知,退出代码的发生是因为 yes 仍在向已退出的进程发送输入。

我还有其他方法可以完成吗?

最佳答案

(yes || true) | my_command

这样你就可以忽略来自 yes 的结果代码但保留来自 my_command 的结果代码.

关于bash - 对交互式脚本使用 yes 会导致退出代码 141,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53126057/

相关文章:

docker - 如何在 CircleCI 中为 Docker 镜像构建缓存 Yarn 依赖项?

mysql - bash中返回变量的问题

python - 从 nohup 开始时如何将参数传递给 python 脚本

c - 如何获取 C 程序本身设置的所有环境变量?

c++ - printf/sprintf 删除登录号码的问题

c - C语言获取int后获取用户字符串

c - 如何使用条件运算符打印整数或字符串值

node.js - Observable.fromPromise 仅在 CircleCI 上构建时不存在

git - Circleci:如何依赖git tag部署

linux - 依次运行 3 个作业