Bash,if问题

use*_*476 0 bash curl if-statement

我正在以这种方式将curl调用的结果解析为变量:

result=$(curl some curl parameters)
Run Code Online (Sandbox Code Playgroud)

我正在检查:

if [ $result != "job completed" ];
then printf "ok"
fi
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

[: too many arguments
Run Code Online (Sandbox Code Playgroud)

任何想法为什么?

pax*_*blo 5

几乎可以肯定,因为你没有对结果进行字符串化,这意味着该[命令被赋予了三个以上的参数.

如果它包含字符串job completed,您将最终得到:

if [ job completed != "job completed" ] ...
Run Code Online (Sandbox Code Playgroud)

我建议你试试:

if [ "$result" != "job completed" ] ...
Run Code Online (Sandbox Code Playgroud)