可选pipping to shell脚本

时间:2017-03-13 15:25:36

标签: pipe sh stdin

我想只在某些东西被打到脚本中时才能在变量中获取stdin的内容,我使用的代码是:

input=$(cat)
echo "$@ $input"

执行echo 'something' | ./script按预期工作,但不会使任何东西只是使脚本无限期地等待输入。如何忽略空stdin?

1 个答案:

答案 0 :(得分:0)

测试是否在尝试设置变量之前将某些内容传递给stdin似乎可以解决问题:

if ! [ -t 0 ]; then
    input=$(cat)
fi