Shell Script (二)善用判断式

  • test命令
    • test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。在shell中,如果命令返回0,则表示成功;任何非0的返回值,都表示失败;同时shell提供了特殊参赛$?来获取上个命令的返回值。
    • 文件类型判断
      -e 文件名  如果文件存在则为真
      -r 文件名  如果文件存在且可读则为真
      -w 文件名  如果文件存在且可写则为真
      -x 文件名  如果文件存在且可执行则为真
      -s 文件名  如果文件存在且至少有一个字符则为真
      -d 文件名  如果文件存在且为目录则为真
      -f 文件名  如果文件存在且为普通文件则为真
      -c 文件名  如果文件存在且为字符型特殊文件则为真
      -b 文件名  如果文件存在且为块特殊文件则为真
      
    • 文件权限判断
      -r 文件名 如果具有“可读”权限则为真
      -w 文件名 如果具有“可写”权限则为真
      -x 文件名 如果具有“可执行”权限则为真
      -u 文件名 如果具有“SUID”属性则为真
      -g 文件名 如果具有“SGID”属性则为真
      -k 文件名 如果具有“Sticky bit”属性则为真
      -s 文件名 如果文件存在且为“非空文件”则为真
      
    • 文件比较判断
      FILE1 -ef FILE2 两个文件指向同一个inode,既是硬链接,则为真
      FILE1 -nt FILE2 FILE1比FILE2更新,既FILE1修改时间晚于FILE2,则为真
      FILE1 -ot FILE2 FILE1比FILE2更旧,既FILE1修改时间早于FILE2,则为真
      
    • 整数判断
      -eq 等于则为真
      -ne 不等于则为真
      -gt 大于则为真
      -ge 大于等于则为真
      -lt 小于则为真
      -le 小于等于则为真
      
    • 字符串判断
      =           等于则为真
      !=          不相等则为真
      -z 字符串  字符串的长度为零则为真
      -n 字符串  字符串的长度不为零则为真
      
    • 多条件判断
      条件1 -a 条件2  如果两个条件都成立则为真
      条件1 -o 条件2  任何一个条件成立则为真
      ! 条件1         条件1的反向状态
      
  • []判断符号 中括号两端必须有空格分割,变量用单引号或双引号括起来。在bash中“==”和“=”作用是一样的
    #!/bin/bash
    a=5
    b=6
    result=$[a+b] # 注意等号两边不能有空格
    echo "result 为: $result"
    
  • 默认变量
    • $# 一共有几个参数

    • $@ 所有参数的值

    • $* 所有参数的值

    • $n 第n个参数是什么

    • shift 造成参数号码的偏移

    • bash ./sh05.sh one two three four five six

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

推荐阅读更多精彩内容

  • 第1章 小试牛刀 $ 是普通用户,# 表示管理员用户 root。 shebang:#!。sharp / hash ...
    巴喬書摘阅读 6,324评论 1 4
  • Bash内置基本变量 PWD : 显示当前的工作目录 OLDPWD : 显示上一次的工作目录 ~:用户家目录 - ...
    魏镇坪阅读 1,512评论 0 6
  • centos7 常用命令管理centos服务器的时候常会对文件进行一些常规操作,除了ftp之外了解在ssh下必要的...
    小线亮亮阅读 1,187评论 0 2
  • shell中各种括号的使用方法(摘自网络) 在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命...
    草中人阅读 516评论 0 0
  • 连日来,朋友圈被各种十八岁刷屏。 有人的十八岁被说土,有人的十八岁被赞美,有人的十八岁回忆满是怀念,有人给十八岁的...
    十六君阅读 1,702评论 0 0