shake-build-system - 如何在 Shake 中获取控制台输入?
问题描述
由于各种不幸的原因,我的部分构建需要 root 权限。我正在尝试为此使用sudo
:
cmd_ "sudo other_script.sh" [input] [output]
sudo
但是,大概是因为 Shake 处理控制台输入/输出的方式,我在运行时实际上无法输入密码。我曾尝试传递WithStderr False
tocmd_
以及 setting shakeLineBuffering=False
,但无济于事。
允许命令提示用户输入的正确方法是什么?如果这样的事情不存在,有没有另一种好方法来做类似的事情?
解决方案
您正在寻找的设置是InheritStdin
确保将标准输入提供给进程,因此您可以实际输入密码。您可能还需要设置EchoStderr
orEchoStdout
才能看到密码提示。
或者,您不必使用cmd
. 在 Shake 中,cmd
针对紧密集成的运行命令的符合人体工程学的方式进行了优化。但是如果您需要更多控制,使用默认模块很容易System.Process
,例如:
liftIO $ System.Process.system "sudo script input output"
推荐阅读
- matrix - 带凿子的矩阵乘法器
- python - AttributeError:模块“unittest”没有属性“Testcase”
- python - 使用 matplotlib 绘制矩形长方体
- android - 如何检查更改集合?
- google-smart-home - 无法通过 OAuth 2.0 Playground 检索 agentUserId
- java - 通过字符串引用 Java 类路径文件
- python - Python - 附加 json 文件
- windows - 无法使用 protoc-gen-go 构建 protobuf
- pandas - 在 Pandas 中,如何将 DataFrame 分为两列,而其他列更改为这些 bin 中的平均值?
- html - 如何在页面上居中离子头像