Определение операционной системы и типа процессора не так просто сделать переносимым . У меня есть sh
скрипт длиной около 100 строк, который работает на самых разных платформах Unix: любая система, которую я использовал с 1988 года.
Ключевые элементы
uname -p
- это тип процессора , но обычно unknown
на современных платформах Unix.
uname -m
в некоторых системах Unix даст "имя аппаратного обеспечения машины".
/bin/arch
, если он существует, обычно дает тип процессора.
uname
без аргументов будет называть операционную систему.
В конце концов вам придется подумать о различиях между платформами и , насколько хорошо вы хотите их сделать. Например, просто для простоты, я отношусь к i386
- i686
, любому " Pentium*
"и любые" AMD*Athlon*
"все как x86
.
My ~/.profile
запускает скрипт при запуске, который устанавливает одну переменную в строку, указывающую комбинацию процессора и операционной системы. У меня есть директории bin
, man
, lib
и include
для конкретной платформы, которые основаны на этом. Затем я установил множество переменных среды. Так, например, сценарий оболочки для переформатирования почты может вызывать, например, $LIB/mailfmt
, который является исполняемым двоичным файлом для конкретной платформы.
Если вы хотите обрезать углы, , uname -m
и обычный uname
расскажут вам, что вы хотите знать на многих платформах. Добавьте другие вещи, когда вам это нужно. (И используйте case
, не вложенный if
!)