这是我的构造(只是一个例子):
echo -e "hello: [$(cat file.txt)]"
在 90% 的情况下,它可以正常工作并输出 ( foo
is in file.txt
):
hello: [foo]
但在 10% 的情况下,我看到(我不知道它何时以及为什么会发生):
hello: []
foo
为什么会这样?
附言。实际上,我的代码如下所示:
STDERR=$(mktemp /tmp/bash-XXXX);
{ something } 2> >( tail -100 | tee $STDERR );
CODE=$?;
if [ $CODE != 0 ]; then
echo -e "ERROR ${CODE}: \"$(cat ${STDERR})\"";
fi
rm -f ${STDERR}