Я написав персональну бібліотеку Bash та сценаріїв, що використовує shtool GNU для досить точного виявлення платформи.
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 зі своїми сценаріями, але це не важка вправа. Ви також завжди можете повернутися на вихідний режим.
Редагувати:
Я пропустив пост Тедді про config.guess
(якось). Це дуже схожі сценарії, але не однакові. Я особисто використовую shtool і для інших цілей, і він працює досить добре для мене.