linux - 通过单个命令行操作确定操作系统

标签 linux windows shell cmd

简介:

我有一个“神奇”工具,如果我提供 IP,它可以在机器上执行命令行操作。 该工具知道机器正在使用的操作系统,并根据它是 windows/linux 在 cmd/shell 上执行命令,并盲目地返回命令的输出。

C:> tool.exe 172.140.56.2 "ipconfig"

假设:

  1. 每台机器一个操作系统。工具执行命令没有问题(失败与否另当别论)
  2. 操作系统总是 windows 或 linux。
  3. 我根据命令结果确定操作系统

问题:

利用这种能够执行命令的能力,我想确定操作系统

我的解决方案:

执行ipconfig 命令。如果结果是

-bash: ipconfig: command not found

它是 linux。

否则如果是这样的话:

Windows IP Configuration
Ethernet adapter Local Area Connection:
...

然后是 Windows。

问题:

我想知道这样做是否是一种万无一失的方法。我想要一个在某些情况下不会失败的命令。 (假设 cygwin 安装在 windows 上允许 linux 命令成功。或者 ipconfig 在某些特殊场景下在 linux 上成功。)

如果有任何帮助的话,我可以使用一些解析器处理命令输出。

只是为了消除任何混淆。它可以是任何命令。我在示例中使用了 ipconfig。

最佳答案

如果我正确理解了您的问题,那么 uname 是理想的命令。如果它是任何 Unix 系统(包括 OSX),它会返回正确的变量,如果它是 Windows,它会返回命令未找到或类似的。

关于linux - 通过单个命令行操作确定操作系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26515363/

相关文章:

c - 从库中的函数获取共享库名称

linux - WGET 和 Google Save Browsing API v4 -

c# - 如何使用 C# 删除 Windows 用户帐户文件夹?

c++ - IShellDisptach:为什么 FolderItemVerbs::Release() + CoUninitialize() 会崩溃?

linux - 如何在 bash 脚本中的 select 语句中调用脚本

php - echo 在 8 字节输入上写入成功,但在其他输入上写入失败

linux - oprofile 0.9.8 在带有 Pentium D 的 Ubuntu 12.10 下失败

linux - usb_modeswitch 卡在手动开关上

c++ - 如何获取当前进程的 Windows 性能计数器

windows - Windows 操作系统上的软实时 - 需要考虑什么?