Shell编程基础

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell编程基础相关的知识,希望对你有一定的参考价值。

接收用户参数

·#./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编程基础的主要内容,如果未能解决你的问题,请参考以下文章

Shell编程基础

Shell编程基础:函数

shell编程基础

linux学习19 shell脚本基础-bash脚本编程基础及配置文件

第九章shell脚本编程基础

Shell编程(基础)