Найти название платформы Unix - PullRequest
2 голосов
/ 17 февраля 2009

Я хочу иметь возможность определить выходную папку на основе имени платформы: AS3, AS4, AS5, SUN.

Я не мог понять, как извлечь имя платформы из системы. Я экспериментировал с:

uname -a

file /bin/bash

Спасибо

Решение

. / Lsb_release -a

Слава Полу Диксону

Ответы [ 5 ]

2 голосов
/ 17 февраля 2009

Некоторые системы Linux будут иметь поддержку lsb_release

2 голосов
/ 17 февраля 2009

Я думаю, вам придется искать определенный файл для каждой ОС. Например, в SunOS вы можете ввести:

uname -s -r -v

Для RHEL, проверьте /etc/issue.

1 голос
/ 17 февраля 2009

Вы можете включить sys / utsname.h для получения информации об ОС на платформах Unix.

struct utsname buf;
uname(&buf);
cout << buf.sysname << endl;

Это, по крайней мере, даст вам название платформы. Я не уверен, что вы подразумеваете под "папкой вывода", поэтому я не уверен, что вам нужно делать после этого.

0 голосов
/ 18 февраля 2009

В прошлом (даже до Linux) я обнаружил, что /bin/arch достаточно распространен в системах Unix и полезен для получения некоторой информации о вашей аппаратной платформе. (В Linux он возвращает то же, что и uname -m).

0 голосов
/ 17 февраля 2009

Похоже, вы хотите (хотя бы частично) номер релиза. В Red Hat вы можете получить следующую версию:

> cat /etc/redhat-release 
CentOS release 4.3 (Final)
Red Hat Enterprise Linux WS release 4 (Nahant Update 4)

Многие другие дистрибутивы Linux имеют свои собственные файлы в / etc, которые также содержат номера выпусков:

  • /etc/redhat-release
  • /etc/SuSE-release
  • /etc/ubuntu-release
  • /etc/fedora-release

и т.д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...