Как использовать if при сравнении 2 строк в ADB shell

#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 интерактивный режим, так что это может не иметь смысла.)