【发布时间】:2020-05-29 16:34:53
【问题描述】:
我的目标是将选项从一个命令传递到使用select 生成菜单的函数。
Shell 选择循环从stdin 读取,default is linked to keyboard inputs 读取,但是当你在管道中时,stdin 变成了上一个命令的stdout(我可能在这里过于简单化了)。
bash help says that select completes when EOF is read,这很不幸,因为如果你从管道中读取所有选项,那么select 将无法打开它,并立即返回。
这是我想做的,它不起作用:
pipe_select() {
select foo in $(cat <&0)
do
echo ${foo};
break;
done
}
echo "ga bu zo me" | pipe_select
【问题讨论】: