假设我有一个如下脚本:
useless.sh
echo "This Is Error" 1>&2
echo "This Is Output"
Run Code Online (Sandbox Code Playgroud)
我有另一个shell脚本:
alsoUseless.sh
./useless.sh | sed 's/Output/Useless/'
Run Code Online (Sandbox Code Playgroud)
我想将"This Is Error"或者useless.sh中的任何其他stderr捕获到变量中.我们称之为ERROR.
请注意,我正在使用stdout.我想继续使用stdout,因此在这种情况下将stderr重定向到stdout是没有用的.
所以,基本上,我想做
./useless.sh 2> $ERROR | ...
Run Code Online (Sandbox Code Playgroud)
但这显然不起作用.
我也知道我能做到
./useless.sh 2> /tmp/Error
ERROR=`cat /tmp/Error`
Run Code Online (Sandbox Code Playgroud)
但那是丑陋和不必要的.
不幸的是,如果没有答案出现在这里,那就是我将要做的事情.
我希望还有另一种方式.
有没有更好的想法?