码迷,mamicode.com
首页 > 系统相关 > 详细

Shell编程基础

时间:2018-02-14 10:36:59      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:code   成功   fst   als   比较运算符   body   执行   定义   接收   

接收用户参数

·#./example.sh one two three
Shell脚本语言内设了用于接收用户参数的变量,基于上述命令,常用的变量如下:

  • 用$0可获取到shell脚本的文件名称,上述的example.sh
  • 用$1、$2、$3 .......分别对应着地N个位置的参数,如$1对应着one
  • 用$#对应着该脚本执行时带有的参数个数,上述$#等于3
  • 用$*对应的是所有位置的参数,上述的$#为one two three
  • 用$?表示上一次命令的执行返回值,0表示成功,非0的其他值表示失败
    <br />

    判断用户的参数

    1. 文件测试语句
    2. 逻辑测试语句
    3. 整数值比较语句
    4. 字符串比较语句

注: 所以测试语句的语法格式都是: [ 条件表达式 ] ,条件表达式前后各有一个空格,且条件表达式中的操作数与运算符之间也必须有空格!!!
<br />

文件测试常用的参数

运算符 作用
-d 测试文件是否为目录类型
-e 测试文件是否存在
-f 判断是否为一般文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行

eg. #[ -d /etc/fstab ]
<br />

逻辑测试运算符

运算符 作用
&& 与运算符,左边为True才计算右边
|| 或运算符,左边为False才计算右边
! 非运算符,真假取反

eg. #[ -e /dev/cdrom ] && echo "Exist"
<br />

整数比较运算符

运算符 作用
-eq 是否等于
-ne 是否不等于
-gt 是否大于
-lt 是否小于
-le 是否小于或等于
-ge 是否大于或等于

eg. #[ 10 -ge 10 ]
<br />

字符串比较运算符

运算符 作用
= 比较字符串内容是否相同
!= 比较字符串内容是否不同
-z 判断字符串内容是否为空,或未定义

eg. #[ -z $String ]
<br />

流程控制语句

  1. if语句
  2. for语句
  3. while语句
  4. case语句
    <br />

    if语句语法

    单分支

    if 条件测试操作; then
    命令序列
    fi

    双分支

    if 条件测试操作; then
    命令序列
    else
    命令序列
    fi

    多分支

    if 条件测试操作; then
    命令序列
    elif 条件测试操作; then
    命令序列
    else
    命令序列
    fi

    <br />

    for语句语法

    for 变量名 in 取值列表
    do
    命令序列
    done

    <br />

    while语句语法

    while 条件测试操作
    do
    命令序列
    done

    <br />

    case语句语法

    case 变量值 in
    模式1)
    命令序列
    ;;
    模式2)
    命令序列
    ;;
    ......
    *)
    默认命令序列
    esac

Shell编程基础

标签:code   成功   fst   als   比较运算符   body   执行   定义   接收   

原文地址:http://blog.51cto.com/taoismli/2071621

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!