<分区>
res=`echo "hello" > /home/directory/folder1/xxx.txt 2>&1`
/home/directory/folder1/xxx.txt: 权限被拒绝
echo $res
空行
我希望错误存储在变量 res 中,为什么它没有被存储以及如何将错误存储在变量中?
<分区>
res=`echo "hello" > /home/directory/folder1/xxx.txt 2>&1`
/home/directory/folder1/xxx.txt: 权限被拒绝
echo $res
空行
我希望错误存储在变量 res 中,为什么它没有被存储以及如何将错误存储在变量中?
最佳答案
您的错误来自shell,而不是来自命令,因此您必须重定向shell 的输出流,例如,像这样:
$ res=$(bash -c 'echo "hello" > /home/directory/folder1/xxx.txt' 2>&1)
$ echo $res
bash: /home/directory/folder1/xxx.txt: No such file or directory
实际上,存在创建子 shell 的更好语法:
$ res=$((echo "hello" > /home/directory/folder1/xxx.txt) 2>&1)
$ echo $res
bash: /home/directory/folder1/xxx.txt: No such file or directory
关于linux - 回显到文件时错误重定向到输出流失败。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41829940/