Вывод команды скрипта оболочки, если сравнение условий не удается сопоставить с той же строкой значений

Вывод команды скрипта оболочки, если сравнение условий не удается сопоставить с той же строкой значений

Я включаю фрагмент скрипта, который определяет версию 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, как он это делает с выводом push/pull, поэтому я попробовал еще и это (хотя не уверен, что это правильный способ):

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"не увенчалась успехом. Вышеуказанный результат выводит "4.0.4" или "4.1.2" для , $versionкак и ожидалось, но во всех вышеприведенных попытках ничего не выводится для $rw_path.

Что я делаю не так?!

Заранее спасибо.

EDIT: Пробовал двойные скобки, как предложено ниже, но безуспешно. Почему вывод "4.0.4" не равен строке "4.0.4"? Имеют ли значение пробелы при сравнении? Могу ли я сначала обрезать вывод? Просто мысль...

решение1

Я подозреваю, что в выводе команды есть "\r" adb. Попробуйте

$(adb shell getprop ro.build.version.release | tr -d '\r')

решение2

Попробуйте заключить эти скобки в двойные скобки вашего теста.

Связанный контент