zoukankan      html  css  js  c++  java
  • shell编程

    shell编程

    一、shell脚本

    把分散执行的若干shell命令配合shell环境支持的流程控制指令而构成的一个具备可执行权限的文件。

    A)shell命令

    B)shell解释器

    C)可执行器

    二、shell解释器

    一种特定的具备解释执行shell的命令的特殊程序

    三、shell程序

    a)最简单的shell脚本程序

    #!/bin/bash

    #这是注释,其解释作用,不影响脚本的执行效果

    shell命令

    注意:

    1.shell脚本中,需要制定解释该shell脚本的shell解释器;

    2.shell脚本文件的扩展名使用.sh

    3.shell脚本需要解释权限     chmod  a+x  hahaha.sh

    a+x 是给所有人加上可执行权限,包括所有者,所属组,和其他人
    o+x 只是给其他人加上可执行权限

    b)shell变量:用来存放一定数据的名字代表

    Shell变量名:就是一个代号(字符串),仅仅只表示名字本身

    Shell变量的值:使用($变量名)来表示变量存储的具体数据

    使用实例:

    $SELECT=yes

    echo $SELECT

    $# 是传给脚本的参数个数

    $0 是脚本本身的名字

    $1 是传递给该shell脚本的第一个参数

    $2 是传递给该shell脚本的第二个参数

    $@ 是传给脚本的所有参数的列表

    $* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个

    $$ 是脚本运行的当前进程ID号

    $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

    c)条件测试

    1.判断与数字之间的关系

      1.   -eq(等于)  -ne(不等于)

    test  $NUM  -eq  10

      2.   -ge(大于等于) -gt(大于)

    test  $NUM  -ge  10

      3.   -le(小于等于)  -lt(小于)

    test  $NUM  -lt  10

    echo -n 表示尾部换行

    2.判断与字符串之间的关系

      1.  -n  -z

    Test  -z  $STRING

      2.  =  !=

    test  $STRING  =  yes

    3.判断与文件之间的关系

      1.  -d  path:判断该文件是否为目录

    test  -d  ~/linux/

    1. -e  path:判断文件是否存在

    test  -e  ~/hello.c

    1. -f  path:判断该文件是否是普通文件

    test  -f  ~/test

    注意:test指令测试成功返回0,测试失败返回非0

    d) 条件分支语句

    1. 条件执行

    if   条件表达式

    then

    执行语句

    fi

    1. 两种情况执行

    if   条件表达式

    then

    执行语句1

    else

    执行语句2

    fi

    1. 分多钟情况执行

    if  条件表达式1

    then

    执行语句1

    elif  条件表达2

    then

    执行语句2

    else

    执行语句n

    fi

    e) 循环语句

    1. for
    2. While

    练习编写一个shell脚本,位置参数上传入三个值,分别是区间的下限m上限n步长s脚本内求该该区间[m,n]内,该步长s变化下的所有整数的和。

    参考代码如下:

    -o是逻辑或,一边为真,结果为真,否则为假

    分两种情况执行

    If 条件表达式

    then

    执行语句1

    else

    执行语句2

    fi

    test被[ ]代替时,[ ]之间的表达式一定要用空格隔开

    判断输入的word是否相同

    1.分多种情况执行

    d)循环语句

    f)函数

    1.函数存在的意义:将需要重复使用的命令块封装起来,起一个唯一的名字,用来作为一个命令整体可重复使用

    2.函数的定义  (在调用之前)

    函数名()

    {

        重用命令块

    }

    3.函数的调用

    直接使用函数名调用该函数

    4.函数的传参

    5.函数的返回值

    在函数内部使用return返回一个值,在函数调用结束之后,使用$?获取返回值

    add test()

    {

      return 100

    }

    add test()

  • 相关阅读:
    VBS修改本机的账号密码
    验证是否为全局编录服务器
    通过CMD命令设置网络参数
    VBS映射网络驱动器 映射网络驱动器
    命令提示符映射网络驱动器
    获得域内包括工作组内的所有计算机及其信息
    VirtualBox安装Redhat9.0
    启动和停止Oracle服务bat脚本
    Vim常用命令
    使用为知笔记客户端发布博客到【博客园】
  • 原文地址:https://www.cnblogs.com/changru/p/5972312.html
Copyright © 2011-2022 走看看