2016-11-24 2 views
1

У меня есть этот код:Bash - сравнение выход двух команд

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

с этим выходом

[email protected]:/var/www/html# bash ayy.sh 
not equal 

, который должен быть "равным" вместо "не равно". Что я сделал не так?

Thnaks

+1

Вы забыли '' 'для переменных там. Это то, что вам нужно: 'if [" $ CMDA "==" $ CMDB "], затем' – janos

+0

@janos благодарит, работает, если вы хотите, чтобы вы могли написать thit в качестве ответа, поэтому я могу отметить его как правильный – tonakriz

+1

Хорошо, туда вы идете. Добавьте несколько дополнительных советов. – janos

ответ

3

Вы забыли $ для переменных CMDA и CMDB там. Это то, что вам нужно:

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

Я также изменил оператор == к =, потому man test упоминает только =, и не ==.

Кроме того, у вас есть избыточная точка с запятой. Все это немного чище:

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

Вы сравниваете строку "CMDA" с "CMDB", то вместо этого следует сравнивать переменные с помощью $ как $ {CMDA}

Смежные вопросы