我有一个这样的剧本
genhash --use-ssl -s $IP -p 443 --url $URL | grep MD5 | grep -c $MD5
我想在变量中获得由genhash生成的流。我如何重定向到一个变量$哈希内比较条件?
if [ $hash -ne 0 ]
then echo KO
exit 0
else echo -n OK
exit 0
fi
我有一个这样的剧本
genhash --use-ssl -s $IP -p 443 --url $URL | grep MD5 | grep -c $MD5
我想在变量中获得由genhash生成的流。我如何重定向到一个变量$哈希内比较条件?
if [ $hash -ne 0 ]
then echo KO
exit 0
else echo -n OK
exit 0
fi
当前回答
我想合适的方式是:
hash=`genhash --use-ssl -s $IP -p 443 --url $URL | grep MD5 | grep -c $MD5`
但我更喜欢
hash="$(genhash --use-ssl -s $IP -p 443 --url $URL | grep MD5 | grep -c $MD5)"
其他回答
使用$(…)构造:
hash=$(genhash --use-ssl -s $IP -p 443 --url $URL | grep MD5 | grep -c $MD5)
你可以:
hash=$(genhash --use-ssl -s $IP -p 443 --url $URL)
or
hash=`genhash --use-ssl -s $IP -p 443 --url $URL`
如果你想将整个管道的结果赋值给变量,你可以在上面的赋值中使用整个管道。
如果管道太复杂,不能用$(…)来包装,可以考虑编写一个函数。定义时可用的任何局部变量都可以访问。
function getHash {
genhash --use-ssl -s $IP -p 443 --url $URL | grep MD5 | grep -c $MD5
}
hash=$(getHash)
http://www.gnu.org/software/bash/manual/bashref.html#Shell-Functions
我想合适的方式是:
hash=`genhash --use-ssl -s $IP -p 443 --url $URL | grep MD5 | grep -c $MD5`
但我更喜欢
hash="$(genhash --use-ssl -s $IP -p 443 --url $URL | grep MD5 | grep -c $MD5)"
创建一个函数,将其作为要调用的命令调用。在本例中,我需要使用ruok命令。
然后,调用该函数并将其结果赋值给一个变量。在本例中,我将结果分配给变量health。
function ruok {
echo ruok | nc *ip* 2181
}
health=echo ruok *ip*