Vig*_*jis 3 scripting unix shell bash
我正在合并一个脚本片段,它通过以下方式确定 Android 版本:
adb shell getprop ro.build.version.release
返回:4.1.2
或4.0.4
该代码段目前如下所示:
if [ "$(adb shell getprop ro.build.version.release)" == "4.1.2" ]; then
rw_path="/sdcard/"
elif [ "$(adb shell getprop ro.build.version.release)" == "4.0.4" ]; then
rw_path="/data/local/"
fi
echo $rw_path
Run Code Online (Sandbox Code Playgroud)
我认为 adb 可能会通过 stderr 返回值,就像它使用推/拉输出一样,所以我也尝试了这个(但不确定这是否是正确的方法):
if [ "$(adb shell getprop ro.build.version.release 2>&1)" == "4.1.2" ]; then
rw_path="/sdcard/"
elif [ "$(adb shell getprop ro.build.version.release 2>&1)" == "4.0.4" ]; then
rw_path="/data/local/"
fi
echo $rw_path
Run Code Online (Sandbox Code Playgroud)
尝试了 -eq 运算符而不是 ==,但它警告“预期为整数表达式”。
然后我尝试了这个以确保它确实比较了一些东西:
version=$(adb shell getprop ro.build.version.release 2>&1)
if [ "$version" == "4.1.2" ]; then
rw_path="/sdcard/"
elif [ "$version" == "4.0.4" ]; then
rw_path="/data/local/"
fi
echo $version
echo $rw_path
Run Code Online (Sandbox Code Playgroud)
尝试取消引用"$variable"
没有运气。上面的输出“4.0.4”或“4.1.2”$version
正如预期的那样,但在上面的所有尝试中,它未能输出任何内容$rw_path
。
我究竟做错了什么?!
提前致谢。
编辑:按照下面的建议尝试使用双括号但没有成功。为什么“4.0.4”输出不等于“4.0.4”字符串?相比之下,空格是否相关?我可以先修剪输出吗?只是一个想法...