Shell获取标准错误并赋值给变量
2017-11-21 14:29
2166 查看
今天在写shell的过程中遇到个问题,用 XXX=$(ln -s XXX XXX) 想在运行软链接时候把错误输出赋值给一个变量,却怎么也赋值不了,最后发现应该是标准输出和标准错误的问题。一般来说$()只会得到命令的标准输出,而我们要拿到的是标准错误。
因此想了下面两个方法,都是可行的。
方法一:
方法二:
var=$(ln -s XXX XXX 2>&1)
echo $var直接把标准错误输出给标准输出,这样就可以直接拿到了。不过有个弊端,如果标准输出是有内容的,则这个变量会即包含标准错误又包含标准输出。
(不过设置软链接一般都是没有标准输出的)
因此想了下面两个方法,都是可行的。
方法一:
ln -s XXX XXX 2>log var=$(cat log) echo $var直接把标准错误输出到文件,然后在cat出来赋值给var变量;
方法二:
var=$(ln -s XXX XXX 2>&1)
echo $var直接把标准错误输出给标准输出,这样就可以直接拿到了。不过有个弊端,如果标准输出是有内容的,则这个变量会即包含标准错误又包含标准输出。
(不过设置软链接一般都是没有标准输出的)
相关文章推荐
- shell 从文件获取数据并赋值给变量
- linux中的for、while循环输出中赋值变量及shell中循环获取脚本参数
- shell 的特性:命令行展开,变量赋值,以及文件层次标准(history)
- 教你一招:获取系统时间赋值给shell变量
- shell脚本获取一个文件的行数赋值给变量
- shell 变量的变量赋值与值的获取
- 怎么把标准输出的内容赋值给一个shell变量
- shell脚本标准输出赋值给变量
- 在shell脚本文件中获取该脚本所在的路径,并赋值给一个变量
- awk使用shell变量,shell获取awk中的变量值
- shell变量赋值-linux
- Ajax获取回调函数无法赋值给全局变量的问题
- Shell标准输出、标准错误 >/dev/null 2>&1
- linux 学习20170726 查看进程号及环境变量、获取字符串长度及shell版本
- shell 变量赋值
- VC控件与变量绑定,赋值,获取方式总结
- shell中变量的取值与赋值
- shell 变量的条件赋值
- shell 脚本中将输出内容赋值给一个变量时的换行问题
- shell 变量赋值与替换