Shell脚本检测在Cygwin中运行

Dou*_*kem 10 unix windows bash shell cygwin

有没有一种简单的方法可以检查脚本是否在Cygwin中运行.我们有一个脚本调用一个实用程序,它希望传递的路径是windows,所以如果我们在Cygwin中,我们必须将路径转换为windows路径.

Ple*_*and 15

您可以使用该uname实用程序.来自uname(1):

-o, - operating-system
打印操作系统

示例代码:

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

  • 但是[OS X的uname(1)](http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/uname.1.html)(BSD uname)不支持`-o`标志. (3认同)
  • 是的,如果您需要超级便携,我不建议使用`-o`,*nix的许多口味都不能识别它.`-s`和`-r`的某种组合应该可以解决这个问题,而且这些标志从一开始就存在. (2认同)