Unix Shell编程——将命令输出结果保存到变量中

将命令输出结果保存到变量中web

文章引用:http://blog.csdn.net/csfreebird/article/details/7978699#replybash

1.两种实现语法svg

var=$(命令)
var=`命令` # 注意此处不是普通的单引号测试

2.说明ui

a. 这两种语法都可实现将命令执行结果保存到var变量中,可是特殊状况下两种方式没法获得正确结果spa

b.若是命令执行过程当中发生错误,则输出的错误信息不会保存到var变量中.net

以上说明均会在下面进行实例测试 3d

3.测试code

  • 正常状况——两种语法都可行
    这里写图片描述xml

  • 命令执行错误时var没法保存错误信息
    这里写图片描述

  • 特殊命令下没法正确执行
    这里写图片描述

    这种状况下可尝试直接使用var=’命令’将命令做为字符串保存到变量中,这样当引用变量时即执行该命令,天然也在使用处可直接使用到命令返回值,缺点在于屡次使用变量命令则屡次执行。
    使用例子以下所示:

#!/bin/bash
n1=
n2=
rd='read n1 n2'
while $rd
do 
    echo "rd=$rd"
    echo "n1=$n1, n2=$n2 \c"
    echo "n1+n2=$((n1+n2))"
    rd='read n1 n2'
done

这里写图片描述