#shell #adb
#оболочка #adb
Вопрос:
Как использовать if при сравнении 2 строк в ADB shell, я пытаюсь использовать :
if ["a" = "a"];
then
fi
это выдает ошибку [: не найдено
Я перепробовал все варианты if, получил ту же ошибку,
даже просто
if [];
then
fi
также дает тот же ответ.
Ответ №1:
Что, если поместить пробелы внутри скобок, вот так:
if [ "a" = "a" ]
Комментарии:
1. Означает ли это, что мой ответ сработал для вас? Я почти уверен, что это сработает, но не уверен, как интерпретировать ваш комментарий. Также обратите внимание, что вам нужно поместить некоторую команду после
then
, даже если это простоecho
для тестирования.
Ответ №2:
Согласно http://developer.android.com/guide/developing/tools/adb.html , adb (Android Debug Bridge) использует ash
оболочку.
У меня нет adb
, но у меня есть ash
в моей системе Ubuntu. В этой системе работает следующее:
if [ "a" = "a" ]
then
echo ok
fi
Попробуйте этот точный код в вашей adb shell, включая все интервалы. В частности, пробелы вокруг [
и перед ]
являются обязательными.
Обратите внимание, что точка с запятой после ]
не требуется; вероятно, это нормально, но удалите ее на всякий случай. (Вы сказали, что «перепробовали все похожие вещи». Не пытайтесь использовать «похожие вещи»; попробуйте это.)
Вы уверены, что находитесь в оболочке ( adb shell
), а не в adb
себе? (Я не знаю, есть ли у adb
интерактивный режим, так что это может не иметь смысла.)