如何在 Bash 脚本中定义bar
函数,以便该脚本中的echo foo | bar
将从脚本的 stdin 而不是管道读取输入?换句话说,如果bar
是:
function bar(){
read ZOO
}
我希望它等待我的输入,而不是将ZOO
设置为"foo"
管道的想法是将管道左侧的流程标准输出与管道右侧的过程标准输出连接起来。因此,在这种情况下,foo
被管道传输到函数bar()
的 stdin
如果要从当前终端显式读取,则将特殊设备/dev/tty
传递给 read
的 stdin:
function bar() {
read ZOO < /dev/tty
}