linux基础知识----Just for Tencent(shell_结构化命令)

1. if-then 语句

基本格式:

if command   //若command命令执行完毕之后的状态码返回值为0,则执行then中的命令,否则                             不执行then中的命令

then  

          commands

fi

if command;then          //另一种格式

    commands

fi

else 格式

if  command;then     //如果command中命令返回的退出状态码为0,则执行then

      commands

else 

      commands    //如果command中命令返回的退出状态码为非0,则执行else

fi

elif 格式

if command;then

   commands

elif  command;then

      commands

elif  command;then

        commands

else

    commands

fi

2. test命令

if  test condition;then      //如果condition条件不写,则以非零状态码退出,执行else中的                                                              commands

         commands

else

            commands

fi 

(1) my_variable="full";  test  $my_variable  //若变量my_variable为空,则退出码为非0,若有内容,则为0

方括号的表达形式

if  [ condition ]    //使用方括号来代替test,但是在方括号的两边必须具有空格

then

     commands

fi

通常test可以测试三类条件

(1)数值比较

n1  -eq n2      //是否相等,相等,则退出码为0

n1  -ge   n2     //是否大于或等于

n1  -gt    n2    //是否大于

n1   -le    n2    //是否小于等于

n1   -lt    n2   //是否小于

n1    -ne   n2   //不等于

其中n1 和  n2 可以使用变量,例如有变量var  ,可以  $var   -ne   n2  这样使用,这种比较不能使用在浮点数中

(2)字符串比较

          str1 = str2    //比较是否相等,通过ASCII表来比较,因此会比较标点,大小写等

          str1 != str2   //比较是否不相等  等号两边留空格,也可以使用变量的方式

          str1 \> str2   //比较大于,大于号需要转义,避免被shell当成重定向符

          str1 \< str2 //比较小于,小于号需要转移,避免被shell当成重定向符

            -n  str1    //测试str1的长度是否为非0

           -z  str1    //测试长度是否为0

   if [ -z  $var  ]                    //在这里,若var未被定义,这里也是可以执行的,只是var的长度为0,                                              故-z  $var的退出码为0

(3)文件比较

-d  file              //检查file是否存在且是一个目录

-e file            //检查file 是否存在

-f  file             //检查file是否是一个文件

-r  file              //检查file  是否存在并可读

-s  file             //检查file是否存在并非空

-w  file           //检查file 是否存在并可写

-x    file       //检查file是否存在并可执行

-O   file          //检查file是否存在并属于当前用户

-G  file            //检查file是否存在并且默认组与当前用户相同

file1  -nt    file2  检查file1是否比file2新

file1   -ot   file2  检查file1是否比 fil2旧

3.复合条件测试

[ condition1 ]  && [ condition2 ]

[ condition1 ]   ||    [ condition2 ]     

4.if-then 的高级特性

针对数学运算符的高级特性

((   expression  ))  ,支持除了上面以外的其他运算符

val++        后增

val--         后减

++val     先增

--val      先减

!        逻辑求反

~       位求反

**     幂运算

<<    左位移

>>   右位移

&   位布尔求反

|    位布尔或

&&   逻辑和

||    逻辑或

针对字符串比较的高级特性

[[  expression  ]],两边有空格

5.case命令

case  variable in

pattern1 | pattern2) commands1;;

pattern3) commands2;;

*) commands;;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容