Похоже, что вы используете iroot
для получения root-доступа к телефону и запускаете команду от имени root.
Я предполагаю, что команда, которая у вас уже есть, не является интерактивной и выдает результат, который выЕсли вы извлекаете перенаправление в файл, без какого-либо вмешательства человека.
Затем простой вопрос захвата его выходных данных покрыт общим FAQ Как установить переменную для выходных данныхкоманда в Bash?
#!/bin/bash
manufacturer=$(expect <<\____HERE)
spawn iroot
expect ".* password for"
sleep 3
send "password\r"
sleep 5
send "dmidecode -t system | grep Manufacturer\r"
send "exit\r"
interact
____HERE
if [ "$manufacturer" = "Motor Ola" ]; then
ola=1
fi
# Maybe you'll prefer case over if, though
case $manufacturer in
"Samsung" | "LG" ) korean=1 ;;
"Apple")
echo "$0: You're kidding, right?" >&2
exit 127;;
*) echo "$0: Unknown manufacturer $manufacturer" >&2
exit 1;;
esac
Если это не работает для вас, тогда Используйте ожидаемый в скрипте bash пароль для команды SSH имеет несколько вариантов, которые вы можете попробовать.
Вы также, кажется, не понимаете природу сценариев.Любой исполняемый файл, который имеет shebang в качестве своей первой строки, будет исполняемым любым интерпретатором, указанным там.У меня /bin/bash
, так что это сценарий оболочки, а точнее Bash-скрипт, в то время как у вас expect
в качестве интерпретатора, так что это сценарий Expect.У вас также обычно есть Awk-скрипты, Perl-скрипты и Python-скрипты (и реже, но не совсем необычные скрипты во многих, многих других языках).
Как уже упоминалось, Expect также является языком сценариев, и этоВозможно, вы захотите, чтобы ваш сценарий оставался Expect, а не сценарий оболочки со встроенным фрагментом сценария Expect.Возможно, затем посмотрите Ожидайте: сохранить вывод команды spawn в переменную
Имя файла, содержащего скрипт, может быть любым, но стандартная рекомендация - не давать ему расширение -- Unix не волнует, и читатели-люди будут сбиты с толку, если ваш .sh
файл является сценарием Expect (как он есть в настоящее время).
Возможно, по касательной также посмотрите Разница между sh и bash а также http://shellcheck.net/, которые вы можете использовать для диагностики синтаксических ошибок в ваших (shell) скриптах.