在bash中回显多个shell命令输出的结果

时间:2014-10-01 02:52:28

标签: bash shell variables scripting echo

我试图将多个命令的结果返回到单个输出行。问题是它似乎只是在变量是命令时才将命令输出到彼此之上。

示例1:

Provider=$(adb shell getprop gsm.operator.alpha)
Model=$(adb shell getprop ro.product.model)
pM=$Provider $Model
echo $pM + " is connected"

输出:已连接 预计:T-Mobile Nexus 5已连接

echo
a='hello '
b='world'
c=$a$b
echo $c " its pretty outside."

按预期工作,输出:hello world非常漂亮。

我感激不尽!

2 个答案:

答案 0 :(得分:2)

将第三行更改为

pM="$Provider $Model"

答案 1 :(得分:2)

adb shell命令输出中的行由\r\n终止,因此您必须删除\r。 有很多方法可以做到这一点,在这里你是一个(和其他一些更正):

Provider=$(adb shell getprop gsm.operator.alpha | tr -d \\r)
Model=$(adb shell getprop ro.product.model | tr -d \\r)
pM="$Provider $Model"
echo $pM " is connected"