评估哪个是更高的数字

时间:2015-09-09 11:23:53

标签: unix scripting

我正在尝试根据版本号处理软件版本,应该从这里获取。

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

1 个答案:

答案 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.