if语句导致'command not found error`

时间:2014-01-10 14:55:17

标签: macos bash shell

我有这段代码:

ColumnInformation=`sqlite3 $database "PRAGMA table_info($table);"`

它完美无缺,但我需要添加if语句:

if [$table != "Order"]; then
    ColumnInformation=`sqlite3 $database "PRAGMA table_info($table);"`
else
    ColumnInformation=`sqlite3 $database "PRAGMA table_info('Order');"`
fi

它引发command not found错误。你能告诉我为什么吗?

最好,Tomek

1 个答案:

答案 0 :(得分:2)

[]两侧可能缺少空间,你需要使用“反引号”来获取子命令的输出:

if [ $table != "Order" ]; then
    ColumnInformation=`sqlite3 $database "PRAGMA table_info('$table');"`
else
    ColumnInformation=`sqlite3 $database "PRAGMA table_info('Order');"`
fi

然而,无论如何,测试似乎毫无意义,因为$table在第二种情况下是“订单”。另请注意,在第一种情况下,您遗漏了$table周围的单引号。