2013-11-28 19 views

回答

2

假设该命令输出整数:如果它不是一个整数,而是一个分数,你不能这样做纯粹的bash

echo $((3 * $(xmllint --xpath '/rates/currency['code="\"$code1\""']/rate/text()' rates.xml))) 

(bash中只支持整数数学),但你仍然可以使用bc:

{ 
    printf '3 *' 
    xmllint --xpath '/rates/currency['code="\"$code1\""']/rate/text()' rates.xml 
} | bc 
+0

命令输出浮点数,例如2.55。我如何去做呢? – user2939526

+0

我已经回答了。 :) – kojiro

2

XPath可以处理算术运算。

xmllint --xpath '3 * /rates/currency['code="\"$code1\""']/rate' 
+0

* facepalm *我应该知道这一点。 – kojiro

+0

这工作,谢谢。但我如何乘以变量? xmllint --xpath'$ x */rates/currency ['code =“\”$ code1 \“'''/ rate' This does not work – user2939526

+0

'xmllint --xpath $ x'*/rates/currency ['code =“\”$ code1 \“”']/rate'' – janos