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
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
==の代わりに-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
"$variable"
の引用を解除してみましたが運が悪かったです。上記は、期待どおり$version
に対して「4.0.4」または「4.1.2」を出力しますが、上記のすべての試行で、$rw_path
に対して何も出力できません。
私は何が間違っているのですか?!
前もって感謝します。
編集:運が悪かったので、以下に提案するようにダブルブラケットを試しました。 「4.0.4」の出力が「4.0.4」の文字列と等しくないのはなぜですか?比較して空白は関係がありますか?最初に出力をトリミングできますか?ちょっとした考え...
adb
コマンドの出力に「\ r」があると思います。試してみてください
$(adb Shell getprop ro.build.version.release | tr -d '\r')
テストダブルブラケットの周りにそれらのブラケットを作ってみてください。