【发布时间】:2016-06-16 12:21:44
【问题描述】:
如何从使用管道调用的 shell 脚本中捕获输入,而不会有 cat 永远等待输入的风险?
echo "hello world" | mysript.sh
在脚本中,我尝试通过以下方式获取输入:
input=$(cat)
但在某些情况下,cat 命令会导致整个脚本超时,因为它等待输入。
【问题讨论】:
-
您想捕捉输入但不想等待输入?
-
输入必须以 EOF = ctrl+D 结尾。
-
请考虑在您的脚本中使用
read。您可以逐行读取,并且您的 shell 可能支持额外的工具,例如超时和单字符读取。