可选管道到 shell 脚本

Optional pipping to shell script

我只想在脚本中获取标准输入的内容,我使用的代码是:

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

echo 'something' | ./script 按预期工作,但不输入任何内容只会使脚本无限期地等待输入。如何忽略空标准输入?

在尝试设置变量之前测试是否像这样将某些内容传递给标准输入似乎可以解决问题:

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