有没有一种简单的方法可以检查脚本是否在Cygwin中运行。我们有一个脚本调用一个实用程序,该实用程序期望传递的路径为Windows格式,因此如果我们在Cygwin中,我们必须将路径转换为Windows格式。
你可以使用uname
实用程序。来自uname(1):
-o,--operating-system
打印操作系统
示例代码:
if [ `uname -o` = "Cygwin" ]
then
# Cygwin specific stuff
else
# Other UNIX (Linux, etc.) specific stuff
fi
#!/bin/ksh
case "$(uname -s)" in
CYGWIN*) echo This is Cygwin ;;
*) echo This is not Cygwin ;;
esac
uname
实用程序的输出结果。将一些评论结合起来,并去掉已过时的反引号,结果如下:
#!/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
-o
标志。 - ryandesign