Mik*_*ing 3 bash printf circleci
我需要在 CircleCI 中运行一个命令,它将预先确定的参数传递给以下命令。当命令只需要字符串或整数时,它可以很好地使用:
printf "arg1\narg2\n" | my_command
Run Code Online (Sandbox Code Playgroud)
但是,如果“我的命令”希望用户使用箭头键来选择一个选项,然后是返回键,则此方法将失败。
这是我所描述的一个例子:
? Which variation would you like to apply? (Use arrow keys)
? A
B
C
Run Code Online (Sandbox Code Playgroud)
所以我尝试了另一种选择,找到了一个名为 yes 的漂亮工具:
yes | my_command
Run Code Online (Sandbox Code Playgroud)
这实际上会起作用(并选择选项 A),但由于退出代码 141,它会导致 CircleCI 中的构建失败。据我所知,发生退出代码是因为 yes 仍在向已退出的进程发送输入。
我还有其他方法可以完成吗?
小智 8
(yes || true) | my_command
Run Code Online (Sandbox Code Playgroud)
这样您就可以忽略来自 的结果代码,yes但保留来自的结果代码my_command。
我能够通过使用双管道来覆盖错误。
yes | my_command || true
Run Code Online (Sandbox Code Playgroud)
这可行,但它会覆盖序列可能抛出的任何错误,使我的 CI 测试常青。这并不理想,但它有效。
| 归档时间: |
|
| 查看次数: |
899 次 |
| 最近记录: |