假设我有一个 bash 脚本:
#!/bin/bash
read -p "Gimme some stuff: " stuff
echo "**${stuff}**"
Run Code Online (Sandbox Code Playgroud)
如果脚本是通过管道调用的,例如:
echo "Here's some stuff" | ./myscript.bash
Run Code Online (Sandbox Code Playgroud)
然后read命令将从管道中读取。即使我在点击该命令之前尝试清除 stdinread,它仍然会立即返回。
有什么办法吗?如果我无法控制调用脚本的方式,有没有办法强制它接受 aread或select来自终端的输入?如果没有,是否有任何偷偷摸摸的方法来暂停脚本以从标准输入以外的用户那里获取输入?