Правильный синтаксис::
lsof -a -i4 -i6 -itcp
При этом выбираются TCP-сокеты IPv4 или IPv6.
Вы можете получить три разных ответа от uname -m
и использовать их.
Мы ожидаем от устройства ответа о сбое без uname
, но мы подавляем ошибку и принимаем пустой ответ в качестве нашего индикатора.
case "$(uname -m 2>/dev/null)" in
(armv7l) DEVICE=Jolla ;;
(aarch64) DEVICE=Android1 ;;
("") DEVICE=Android2 ;;
(*) DEVICE=UNKNOWN ;;
esac
Хотя мы могли бы ссылаться на номера версий программного обеспечения, они вполне могут измениться при обновлении ОС. Использование информации об оборудовании более надежно в ваших текущих обстоятельствах, но приведет к ложным срабатываниям, если вы получите дополнительные устройства с той же аппаратной архитектурой.
Другим способом может быть установка bash (приложения Termux, например )на все устройства Android, и скрипт проверяет OSTYPE
переменную bash:
На устройстве Android 8.1 переменная OSTYPE
bash равнаlinux-android
(см. скриншот ниже)
Следовательно, команда дифференцирования будет:
echo $OSTYPE | grep -q android && export osFamily=Android || export osFamily=$(uname -s)