【发布时间】:2017-09-23 23:20:10
【问题描述】:
if [ cmp -s "$expectedOut" "$actualOut" ]; then
以下代码行不断给我错误,说参数太多。但是我知道这是 cmp 的正确典型用法,所以我认为它可能与括号有关。有人知道这里到底发生了什么吗?
【问题讨论】:
-
[不是if语法的一部分——它是一个具有自己语法的单独命令。如果你想运行cmp,运行cmp,而不是[。
if [ cmp -s "$expectedOut" "$actualOut" ]; then
以下代码行不断给我错误,说参数太多。但是我知道这是 cmp 的正确典型用法,所以我认为它可能与括号有关。有人知道这里到底发生了什么吗?
【问题讨论】:
[ 不是if 语法的一部分——它是一个具有自己语法的单独命令。如果你想运行cmp,运行cmp,而不是[。
输掉[]。
if cmp -s "$expectedOut" "$actualOut" ; then
if的语法是
if Command; then
[ 只是一个可能的命令(在这个命令上恰好期望 ] 作为它的最后一个参数以使事情看起来更漂亮)。
【讨论】: