скрипт начинается с:
Код: Выделить всё
#!/system/bin/sh
is_sourced() {
[ "$_" = "is_sourced" ]
}
prt () {
if is_sourced
then
echo "$1"
else
log -p i -t "Emotiq" "$1"
fi
}
...
Я не могу понять, почему is_sourced удается надежно определить, загружаю ли я сценарий или выполняю его.
Добавленные распечатки показывают, что $_ всегда, независимо от того, где в моем коде is_sourced вызывается либо "is_sourced", если сценарий был исходным, либо "./test.sh" (т. е. имя, с которым я вызвал сценарий), если он выполняется.
Может ли кто-нибудь объяснить такое поведение?
Теоретически $_ должен быть последним параметром последней выданной команды, но это явно не так. правда, по крайней мере в этом случае.
Я тестировал с использованием оболочки adb, но это справедливо, даже если скрипт выполняется как часть настройки приложения.
Подробнее здесь: https://stackoverflow.com/questions/797 ... his-script
Мобильная версия