Определение версии Linux

Вы просили поправить вас, когда вы были неправы. я попробую:

  • Linux-скрипты написаны на bash:Ну, некоторые написаны для bash, другие для dashи, надеюсь, их можно будет использовать в любой POSIX -совместимой оболочке.
  • Сценарий Bash обычно #!/bin/sh Если они полагаются на не -стандартные bashфункции, настоятельно рекомендуется иметь #!/bin/bashshebang
  • В GNU/Linux /bin/sh — это Bash Это зависит от дистрибутива. Например, это может быть dashили mkshв Debian.
  • Во FreeBSD /bin/sh — это не bash, а настоящий sh . Существует много shреализаций. Какой из них "верный"? Во FreeBSD shоснован на оболочке Almquist, такой как dashили NetBSD sh. В OpenBSD он основан на pdksh, во многих коммерческих Unices он основан на ksh88 (, который является основой для спецификации Unix/POSIX sh). Некоторые оболочки на основеksh88bashявляются единственными двумя оболочками, которые были сертифицированы как совместимые с Unix shреализации (при сборке с правильными флагами и в правильной среде ).

Если у вас есть скрипты с /bin/shshebang и вы хотите, чтобы они выполнялись с помощью zsh, вы можете попробовать передать скрипт zsh, но это не удастся, как только этот скрипт вызовет другой скрипт (и вы не хочу его изменять ).

Так что я вижу только возможность иметь символическую ссылку с /bin/shна ваш zsh. Но я не рекомендую делать это , так как это может сильно повлиять на время загрузки и даже не поможет вам для некоторых ваших скриптов Linux.

0
12.10.2019, 21:28
1 ответ

В семействе Fedora/RHEL/CentOS вы можете использовать:

cat /etc/*-release

Это даст вам точную версию.

Как root, вы также можете установить redhat-lsb-coreи использовать:

lsb_release -a
1
28.01.2020, 02:39

Теги

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