我正在寻找 unix 中的 shell 命令,该命令具有在所有 unix 平台上统一的非零输出(例如,在 unix 系统上始终返回 1),并且在 Windows 中没有(或零值)输出。
我尝试过(在unix中):
sh echo 1
但这会返回:
cannot execute binary file
使用
echo 1
不符合这个标准,因为它在 Windows 和 Unix 中都会产生输出。
答案1
该dir
命令在 Linux 和 Windows 中都存在,可能适合这种情况。Windowsdir
上的命令确实设置了脚本的退出代码。它还有一个优点,即它是一个非破坏性命令。
在 Linux 上,根据手册页,这些错误代码是可用的。
Exit status:
0 if OK,
1 if minor problems (e.g., cannot access subdirectory),
2 if serious trouble (e.g., cannot access command-line argument).
答案2
SYSTEMROOT
测试或环境变量是否存在SYSTEMDRIVE
以确认您使用的是 Windows。如果您坚持采用真正的安全措施,请解析该值以确认您找到了C:
或类似的驱动器号。