Bash - 比较两个命令的输出

ant*_*riz 2 linux bash terminal curl string-comparison

我有这个代码:

#!/bin/bash

CMDA=$(curl -sI website.com/example.txt | grep Content-Length)

CMDB=$(curl -sI website.com/example.txt | grep Content-Length)

if [ "CMDA" == "CMDB" ];then
  echo "equal";
else
  echo "not equal";
fi
Run Code Online (Sandbox Code Playgroud)

有了这个输出

root@abcd:/var/www/html# bash ayy.sh
not equal
Run Code Online (Sandbox Code Playgroud)

这应该是“相等”而不是“不相等”。我做错了什么?

纳克斯

Sto*_*ica 5

你忘记了$变量CMDACMDB那里。这是你需要的:

if [ "$CMDA" = "$CMDB" ]; then
Run Code Online (Sandbox Code Playgroud)

我也将==运算符更改为=,因为man test只提到了=,而不是==

此外,您还有一些多余的分号。整个事情有点干净:

if [ "$CMDA" = "$CMDB" ]; then
  echo "equal"
else
  echo "not equal"
fi
Run Code Online (Sandbox Code Playgroud)