标签: pipe sh stdin
我想只在某些东西被打到脚本中时才能在变量中获取stdin的内容,我使用的代码是:
input=$(cat) echo "$@ $input"
执行echo 'something' | ./script按预期工作,但不会使任何东西只是使脚本无限期地等待输入。如何忽略空stdin?
echo 'something' | ./script
答案 0 :(得分:0)
测试是否在尝试设置变量之前将某些内容传递给stdin似乎可以解决问题:
if ! [ -t 0 ]; then input=$(cat) fi