Я написал личную библиотеку Bash и среду сценариев, которая использует GNU shtool для довольно точного определения платформы.
GNU shtool - это очень переносимый набор скриптов, который содержит, помимо прочего, команду «shtool platform». Вот вывод:
shtool platform -v -F "%sc (%ac) %st (%at) %sp (%ap)"
на нескольких разных машинах:
Mac OS X Leopard:
4.4BSD/Mach3.0 (iX86) Apple Darwin 9.6.0 (i386) Apple Mac OS X 10.5.6 (iX86)
Ubuntu Jaunty server:
LSB (iX86) GNU/Linux 2.9/2.6 (i686) Ubuntu 9.04 (iX86)
Debian Lenny:
LSB (iX86) GNU/Linux 2.7/2.6 (i686) Debian GNU/Linux 5.0 (iX86)
Это дает довольно удовлетворительные результаты, как вы можете видеть. GNU shtool немного медленный, поэтому я на самом деле храню и обновляю идентификацию платформы в файле в системе, который вызывают мои скрипты. Это мой каркас, так что у меня работает, но ваш пробег может отличаться.
Теперь вам нужно найти способ упаковки shtool с вашими скриптами, но это не сложное упражнение. Вы также всегда можете воспользоваться выводом uname.
РЕДАКТИРОВАТЬ:
Я пропустил пост Тедди о config.guess
(как-то). Это очень похожие сценарии, но не одинаковые. Лично я использую shtool и для других целей, и он работал довольно хорошо для меня.