【发布时间】:2017-04-15 22:43:59
【问题描述】:
这真的很奇怪... 我无法让这个测试在我的 linux shell 中为真,我不知道为什么。
#!/bin/bash
a=$(adb shell getprop ro.product.brand)
adb shell getprop ro.product.brand
if [ "$a" == "Huawei" ]; then
echo "Success"
else
echo "Failed"
fi
脚本只是输出:
Huawei
Failed
而这个脚本:
b=$(whoami)
whoami
if [ "$b" == "amo" ]; then
echo "Success"
else
echo "Failed"
fi
...输出:
amo
Success
谁能帮助我理解这一点?
我已经尝试通过管道 cut 或 sed 来删除 $a 中的空格或换行符,但我得到了相同的结果...
【问题讨论】:
-
您确定字符串不包含尾随空格或换行符吗?在这种情况下,这似乎是可能的问题......
-
我想是的。请参阅下面的帖子。
-
试试这个:
echo "${#a}。这将打印变量值中的字符数,因此您可以验证没有发生任何错误(例如未显示但在比较字符串时考虑在内的不可打印字符)。 -
这里确实有问题:字符数是7,而“华为”只有6——即使使用了下面帖子中的修剪功能。
-
有趣的是,如果我只执行
$a,我会收到消息:./test.sh: line 21: $'Huawei\r': command not found
标签: android linux bash shell adb