我正在尝试根据版本号处理软件版本,应该从这里获取。
<!-- language: lang-sh -->
if [ `expr ${rel_choice}\<2.24` -eq 0 ]; then
rel_223
elif [ `expr ${rel_choice}\=2.25` -eq 0 ]; then
rel_225
elif [ `expr ${rel_choice}\>2.25` -eq 0 ]; then
rel_226
else
lp_error "Could not evaluate release number"
fi
我遇到的问题是这个,无论我选择什么号码,程序只运行rel_223功能。 这是调试输出。
Enter stream required for BSB?: 2.25
The Client is BSB
The Release number is 2.25
The build directory is ACEV225
+ expr 2.25<2.24
+ [ 2.25<2.24 -eq 0 ]
+ echo rel_223
rel_223
+ read
答案 0 :(得分:0)
试试这个:
[`expr $ {rel_choice}&#34;&lt;&#34; 2.24` -eq 0]
请注意,此处操作符由操作数引用并由空格分隔。对我而言,它起作用了:
expr 1 "<" 2
1
expr 1 "<" 1
0
expr 1 "<" 0
0
我试过的版本是:
expr --version
expr (GNU coreutils) 8.24
Packaged by Cygwin (8.24-3)
Copyright (C) 2015 Free Software Foundation, Inc.