已关闭,此问题需要更focused。目前不接受答复。
**想改善这个问题吗?**更新问题,使其仅通过editing this post关注一个问题。
3天前关闭。
截至3天前,社区正在审查是否重新讨论此问题。
Improve this question
我有一个动手的程序,验证我的输出的基础上设置的命令。使用的命令如下。javac Main.java && if [[ $(java Main AbcDef 1 2 | grep 4 | wc -l) -eq 1 ]]; then echo "Test Passed";elif [ $(java Main AbcDef 1 2 | grep 4 | wc -l) -eq 0 ]; then echo "Test failed"; fi
程序将返回一个数字。main.java包含代码。谁能解释一下如何解析或者第一个if和else if条件是什么?
我试着检查每个命令的功能。发现-eq将与==相同,但仅用于数字。上面例子中的其他命令和用法很少,但令人困惑。
2条答案
按热度按时间sh7euo9m1#
会给予你行数。
将只输出字符“4”所在的行。
你的命令是:
运行:
java Main AbcDef 1 2
并从该输出中只保留包含“4”的行:
grep 4
然后对过滤后的行进行计数:
wc -l
如果有1行测试通过:
-eq 1
否则有0行测试失败:
-eq 0
希望能帮上忙。
8cdiaqws2#
grep查找与正则表达式模式匹配的行
会变成
而grep.
wc
表示字数,所以它计算字数。本质上,这个测试是在寻找一个输出4
的行。-eq
1是pass,所以程序需要打印4。不是零分。