Shell script обнаруживает запуск в Cygwin

Есть ли простой способ проверить, работает ли script в Cygwin. У нас есть script, который вызывает утилиту, которая ожидает, что пути передаются как окна, поэтому, если мы находимся в Cygwin, нам нужно преобразовать пути в пути к Windows.

Ответ 1

Вы можете использовать утилиту uname. Из uname (1):

-o, --операционная система
  распечатать операционную систему

Пример кода:

if [ `uname -o` = "Cygwin" ]
then
    # Cygwin specific stuff
else
    # Other UNIX (Linux, etc.) specific stuff
fi

Ответ 2

Это работает с ksh и bash.

#!/bin/ksh
case "$(uname -s)" in
    CYGWIN*) echo This is Cygwin ;;
    *) echo This is not Cygwin ;;
esac

Ответ 3

проверить вывод утилиты uname

Ответ 4

Объединение некоторых комментариев и удаление устаревших обратных результатов:

#!/bin/bash
OS_NAME=$(uname -s)
OS_NAME=${OS_NAME:0:6}

if [[ "$OS_NAME" = "CYGWIN" ]]
then
    # Cygwin specific stuff
else
    # Other UNIX (Linux, etc.) specific stuff
fi