天道酬勤,恒者能胜。追求卓越,成功就会在不经意间追上你。

Shell编程基础概念之SHELL编程语法(七.3)

上一篇 / 下一篇  2012-12-31 11:42:40 / 精华(1) / 置顶(1) / 个人分类:Linux操作系统

白素贞:“法海,你不懂爱!”
法海:“老子连地段最繁华的雷峰塔都给你了,你还想怎样!”



7比较操作

比较操作一般用在条件判断中,以下语法使用条件判断为例:

7.1字符串比较

1)字符串相等比较

if [ $str =value]; then       #注意等号两边比较有空格,否则为赋值运算

fi

 

2)字符串是否为空

if [-$str=-]; then        #-没有任何含义,只是为了增加可读性

fi

 

if [X$str=X]; then        #X没有任何含义,只是为了增加可读性

fi

 

3)字符串不相等比较

if [ $str !=value]; then      #注意等号两边比较有空格,否则为赋值运算

fi

 

if [ ! $str =value]; then     #!为not的含义,即取反

fi

 

7.2数字比较

1)大于、大于等于

if [ $str -gt 100 ]; then       #-gt表示大于

fi

 

if [ $str -ge 100 ]; then       #-ge表示大于等于

fi

 

2)小于、小于等于

if [ $str -lt 100 ]; then       #-lt表示小于

fi

 

if [ $str -le 100 ]; then       #-le表示小于等于

fi

 

2)等于、不等于

if [ $streq 100 ]; then       #-eq表示等于

fi

 

if [ $str -ne 100 ]; then       #-ne表示不等于

fi

 

if [ ! $str -eq 100 ]; then       #!表示取否,-eq表示等于

fi

 

7.3判断条件连接

1)与/and,即要求表达式1与表达式2同时为真

if express1 && express 2 ;          #&&表示与/and含义

then

fi

 

if [ str1 = “aa” ] && [ str2 = “bb” ] ;    

then

fi

 

 

2)或/or,即要求表达式1或者表达式2之一为真

if express1 || express 2 ;            #||表示或/or含义

then

fi

 

if [ str1 = “aa” ] || [ str2 = “bb” ] ;    

then

fi

 

3)取反,

if ! express1 ;                   #!表示去反

then

fi

 

if [ ! $? –eq 0 ];

then

fi

 

 

8SHELL函数

 

可以将SHELL中需要重复执行的代码写成函数,与C编程的函数一致。

8.1函数格式

定义函数的格式为:

函数名()

{

  ...

}

或者

函数名(){

  ...

}

两者方式都可行。如果愿意,可在函数名前加上关键字function,建议增加。

function函数名()

{

 ...

}

 

8.2向函数传入参数

函数可以带参数调用,调用方式为

函数名称 参数列表

 

函数取得传入的参数,与SHELL得到调用的参数完全一致:

判断参数个数:

$#

取参数:

$1 $2

 

8.3 函数返回参数

函数可以使用return返回调用参一个值。调用者可以在调用函数后得到函数的返回值:

$?得到,如:

#调用格式:aaa parameter

aaa()

{

  return 1

}

 

#错误用法

a=`aaa para`  #无法得到返回值1

 

#正确用法

aaa para

ret=$?

 

如果使用exit,将退出SHELL程序

 

8.4 将常用函数写成库函数

为了重复利用代码,可以将函数写成库函数的方式,然后在SHELL中包含进行即可使用:

. libraryfile

 

                          零测试

TAG: 零测试 BASH bash Bash if shell Shell 操作系统

 

评分:0

我来说两句

Open Toolbar