首页 > 解决方案 > 如何提示用户在 CLI 工具中输入,同时能够将工具的输出通过管道传输到另一个程序?

问题描述

我正在编写一个 CLI 工具来加密和在 docker-compose 文件中嵌入秘密。我要求用户通过标准输入交互输入解密密码。

不幸的是,这意味着我不能做这样的事情,因为我不会得到询问我密码的对话框:

myfancytool decrypt docker-compose.yml | docker-compose -f - up -d

有没有办法获得所需的行为?

标签: rust

解决方案


您可以使用eprint!oreprintln!宏将提示打印到 stderr 而不是 stdout。即使标准输出被重定向到管道,它仍然会进入终端。


推荐阅读