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

标签 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/html# bash ayy.sh
not equal

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

谢谢

最佳答案

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

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

我还把==操作符改成了=, 因为man test只提到了=, 而不是 ==

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

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

关于linux - Bash - 比较两个命令的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40793194/

相关文章:

linux - 在 bash 中访问 Perl 数组

c - semop( ) 失败,错误号 4。semop() 是否支持进程内的线程竞争?

linux - 为什么父 bash 等待子 bash 死亡才执行 trap

linux - 为什么 '?' 的值会根据我当前的目录而变化?

python - 如何解析curl响应而不将其保存到文件中

linux - 如何修改现有的 Linux 内核模块

regex - -v 选项在 grep 中不起作用

bash - 将动态生成的参数传递给脚本内的命令

bash - 如何根据来自 curl 的 HTTP 状态代码分支 shell 脚本?

php - 使用php curl在elasticsearch中搜索