Linux Bash-比较两个命令的输出

Linux Bash-比较两个命令的输出,linux,bash,curl,terminal,string-comparison,Linux,Bash,Curl,Terminal,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 用这个输出 root@abcd:/var/www/ht

我有以下代码:

#!/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
应该是“相等”而不是“不相等”。我做错了什么


如果您正在比较字符串“CMDA”和“CMDB”,则应改为使用$like${CMDA}

比较变量。您忘记了变量
CMDA
CMDB
$
。这就是您需要的:

if [ "$CMDA" = "$CMDB" ]; then
我还将
=
运算符更改为
=
, 因为
人工测试
只提到
=
, 而不是
==

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

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

您忘记了那里变量的
$
。这就是您需要的:
if[“$CMDA”==“$CMDB”];然后
@janos谢谢,行了,如果你愿意,你可以把它写下来作为答案,这样我就可以把它标记为正确的答案好了,就这样。还多加了一些小费。