您的位置:首页 > 运维架构 > Shell

Shell获取标准错误并赋值给变量

2017-11-21 14:29 2166 查看
今天在写shell的过程中遇到个问题,用 XXX=$(ln -s XXX XXX) 想在运行软链接时候把错误输出赋值给一个变量,却怎么也赋值不了,最后发现应该是标准输出和标准错误的问题。一般来说$()只会得到命令的标准输出,而我们要拿到的是标准错误。
因此想了下面两个方法,都是可行的。
方法一:
ln -s XXX XXX 2>log
var=$(cat log)
echo $var
 直接把标准错误输出到文件,然后在cat出来赋值给var变量;
方法二:

var=$(ln -s XXX XXX 2>&1)
echo $var直接把标准错误输出给标准输出,这样就可以直接拿到了。不过有个弊端,如果标准输出是有内容的,则这个变量会即包含标准错误又包含标准输出。
(不过设置软链接一般都是没有标准输出的)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: