我继承了一些为进行自动化性能测试而编写的 shell 脚本,而没有任何 shell 脚本知识。我浏览了一些指南并使用了该语言,直到我可以完成我的项目。它大部分进展顺利,但我被困在我绝对无法在其他任何地方找到答案的事情上。
部分旧代码 ssh 进入测试中使用的服务器,并以脚本作为参数。我需要这个脚本在 Windows 和 Linux 上做不同的事情。到目前为止,我最好的解决方案是在 uname -a 的输出中对 Cygwin 进行 grep,如果找到,则执行 Windows 代码。
不幸的是,脚本在通过 ssh 传递时以及在 Windows 系统上通过 Cygwin 执行时都会失败。
#!/bin/bash
if [ `uname -a | grep "Cygwin"` ]; then
echo "ARRGG WINDOWS!"
else
echo "Some Linux command."
fi
产量:
./test.sh:第 2 行:[:参数太多
然后分支到非 Windows 逻辑。在我尝试过的任何 Linux 发行版上,同样的事情似乎运行良好。
我剩下三个问题。为什么我会遇到这个异常,除了谷歌搜索之外,还有什么好方法可以让我回答像这样的超特定问题(shell 脚本、Cygwin、ssh 和一个错误之间的交叉点),还有更好、更规范的方法吗?测试平台?
感谢您抽出宝贵时间,我很乐意提供任何有帮助的其他信息。
麻烦的条款被逐字复制,其余的都是为了SO。