我需要一些建议.. 我正在编写一个 BASH 脚本,以检查 JSON 文件中的信息。 但是我需要检查大于用户输入的数字的值。
因此,如果用户输入 5.6(必须是十进制(,那么我将检查大于或等于此值的任何值。
"Buzz", 4.5
"Trashy Blonde", 4.1
"Berliner Weisse With Yuzu - B-Sides", 4.2
"Pilsen Lager", 6.3
"Avery Brown Dredge", 7.2
"Electric India", 5.2
所以它应该显示
"Pilsen Lager", 6.3
"Avery Brown Dredge", 7.2
我非常接近..但是需要一些关于表达的建议,请。
read -p "Enter the ABV value greater to display: " ABV_Value
curl 'https://s3-eu-west-1.amazonaws.com/kg-it/devopsTest/api-punkapi-com-v2-beers.json' | jq '.[] | .name,.abv' | {
while read name;
do
read abv
#if [ $abv -ge 5.1 ]; then
if [ $abv -ge $ABV_Value ]; then
echo "$name, $abv"
fi
done
}
目前我得到 - [: 4.5:预期的整数表达式
任何建议都将得到重视。
Bash 不支持平坦点运算。 但jq
确实如此。
read -p "Enter the ABV value greater to display: " -r ABV_Value
curl 'https://s3-eu-west-1.amazonaws.com/kg-it/devopsTest/api-punkapi-com-v2-beers.json' |
jq -r --arg lim "$ABV_Value" '.[] | select(.abv>=($lim|tonumber)) |
""" + .name + "", " + (.abv|tostring)'