Я пытался изо всех сил пытаться выяснить, как сравнивать вывод команды, хранящейся в переменной, с содержимым другой переменной, также строки, в Shell Script , Я знаю, что это похоже на основной случай RTFM, но я уже сделал это, и я действительно не могу решить эту проблему.Как сравнить вывод команды со строкой в Shell Script
Таким образом, код, который у меня есть следующие, связанные с Android (я использую инструмент АБР) и с комментариями, чтобы помочь понять:
# Using the ` char to execute the command and return the result as a string
# To store it in the variable
RES=`adb shell dumpsys power | grep "Display Power"`
# Store the string in the variable
EXPECTED='Display Power: state=OFF'
#Simple checks, both returning "Display Power: state=OFF" (without quotes) in the console
echo "$RES"
echo "$EXPECTED"
# Compare if the values of the variables, both strings, are equal
# If so, perform action
if [ "$EXPECTED" = "$RES" ]
then
echo "inside"
adb shell input keyevent 26
fi
Дело в том, что струны в Сравнение IF никогда не кажется равным.
Я думаю, что ошибка заключается в первом присваивании значения переменной RES, потому что, может быть, я не понял правильно, что означает символ и что он возвращает, не то, что кажется.
Я уверен, что вы, ребята, можете мне помочь здесь с этим основным случаем.
Большое спасибо за вашу помощь
Проверьте точное содержимое сохраненного файла. Есть, например, конечная новая строка, которая еще не указана в вашей строке EXPECTED? – mpez0
Можете ли вы показать нам результаты двух команд 'echo' в вашей« простой проверке »? Еще лучше ... 'echo '> $ {RES} <" 'и' echo>> $ {EXPECTED} <"' – mauro