rust - 如何提示用户在 CLI 工具中输入,同时能够将工具的输出通过管道传输到另一个程序?
问题描述
我正在编写一个 CLI 工具来加密和在 docker-compose 文件中嵌入秘密。我要求用户通过标准输入交互输入解密密码。
不幸的是,这意味着我不能做这样的事情,因为我不会得到询问我密码的对话框:
myfancytool decrypt docker-compose.yml | docker-compose -f - up -d
有没有办法获得所需的行为?
解决方案
您可以使用eprint!
oreprintln!
宏将提示打印到 stderr 而不是 stdout。即使标准输出被重定向到管道,它仍然会进入终端。
推荐阅读
- angular - 角度 8 中的组件加载
- r - 在 tibble 中取消嵌套多个 tibble 以拆分 Mutli-Select 调查问题
- python - 在 Python 中访问 shell 变量
- azure-devops - 如何在 Azure Devops 中不使用故事点
- php - 在以下情况下如何使用 RewriteCond
- python - 如何修复 Python Pywinauto KeySequence 错误
- html - 基于居中背景图像反转字体颜色 - CSS
- java - 如何打破双向链表中的随机元素
- java - 错误:无法初始化主类 AirMail 原因:java.lang.NoClassDefFoundError: javax/mail/Authenticator
- reactjs - 使用 Jest 测试/模拟 ReactComponent SVG 导入