Почему высокие коды выхода в оболочках Linux (> = 256) не работают должным образом?

В OSX, uname -s возвращает Darwin (большинство программ Linux uname возвращают Linux ).

Как правило (кроме личного использования), uname имеет особенности для разных систем. В autoconf сценарии используют config.guess , который предоставляет согласованную информацию.

Например, в моем Debian 7,

x86_64-pc-linux-gnu

и OSX El Capitan

x86_64-apple-darwin15.5.0

Вы можете использовать операторы if-then-else в оболочке или оператор case. Последние легче поддерживать, например,

case $(config.guess) in
*linux*)
    DoSomeLinuxStuff
    ;;
*apple-darwin*)
    DoSomeMacStuff
    ;;
esac

Многие дистрибутивы Linux добавляют информацию к выходным данным uname , но это полезно только в отдельных случаях. Не существует стандарта для добавленной информации.

Для моего Debian 7:

$ uname -v
#1 SMP Debian 3.2.81-1

в то время как OSX радикально отличается:

$ uname -v
Darwin Kernel Version 15.5.0: Tue Apr 19 18:36:36 PDT 2016; root:xnu-3248.50.21~8/RELEASE_X86_64

Дополнительная литература:

3
27.09.2017, 00:44
0 ответов

Теги

Похожие вопросы