Bash - 比较两个命令的输出

Bash - comparing output of two commands

我有这个代码:

#!/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

使用此输出

root@abcd:/var/www/html# bash ayy.sh
not equal

应该是 "equal" 而不是 "not equal"。我做错了什么?

谢谢

您正在比较字符串 "CMDA" 和 "CMDB",您应该使用 $ like ${CMDA}

来比较变量

您忘记了变量 CMDACMDB$。这就是您所需要的:

if [ "$CMDA" = "$CMDB" ]; then

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

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

if [ "$CMDA" = "$CMDB" ]; then
  echo "equal"
else
  echo "not equal"
fi