• Shell编程过程中的使用规范与变量


    一、shell脚本概述

     shell脚本的概念:

    将要执行的命令按顺序保存到一个文本文件

    给该文件可执行权限

    可结合各自shell控制语句以完成更复杂的操作

     

     shell脚本应用场景

    重复性操作

    交互性任务

    批量事务处理

    脚本运行状态监测

    定时任务执行

    简单来说,将平时使用的各种linux命令按顺序保存到一个文本文件,添加可执行权限,从而完成更复杂的操作,

    就是shell脚本。

     

    shell的作用:命令解释器,“翻译官”

    介于系统内核与用户之间,负责解释命令行

    用户的登录shell

    默认使用的shell程序,一般为/bin/bash

     

    二、编写一个shell脚本

     编写脚本代码:

    使用vim文本编辑器(vim能检查语法结构,编写是否存在问题)

    每一条linux命令,按执行顺序编写

    赋予可执行权限:使脚本具有可执行属性

    chmod +x [文件名]

    执行方法

     方法一:sh 脚本文件路径  (不需要执行权限)

     方法二:./脚本文件路径     (需要执行权限来操作)

     方法三:source 脚本文件路径   (也不需要执行权限)

    实验案例

     

     

     

    更完善的脚本构成包括

    脚本声明  #!/bin/bash

    注释信息  # 注释信息

    可执行语句

     

    三、重定向

    标准输入(STDIN):默认的设备是键盘,文件编号为0,命令将从标准输入文件中读取在执行过程需要的输入数据。

    标准输出(STDOUT):默认的设备是显示器,文件编号为1,命令将执行后的输出结果发送到标准输出文件。

    标准错误(STDERR):默认设备是显示器,文件编号为2,命令将执行期间的各种错误信息发送到标准错误文件。

    标准输入、标准输出和标准错误默认使用键盘和显示器作为关联的设备,与操作系统进行交互,完成最基本的输入、输出操作,

    即从键盘接收用户输入的各种命令字串、辅助控制信息,并将命令结果输出到屏幕上;如果命令执行出错,也会将错误信息反馈到屏幕上。

    在实际的Linux系统维护中,可以改变输入、输出内容的方向,而不适用默认的标准输入、输出设备(键盘和显示器),这种操作称为重定向。

     

    重定向操作

     

    重定向输入例子:

    vi pass.txt

    useradd lisi

    passwd --stdin lisi < pass.txt      #更改用户lisi的密码

     

     

    管道操作符号 “|”

     将左侧的命令输出结果,作为右侧命令的处理对象。

     

     

    四、自定义变量

    当变量名称后面紧跟其他字符相混淆时,需添加“{  }”将其括起来。

    echo ${product}2.5

    变量赋值的特殊操作:

     

    设置变量的作用范围

    默认情况下,新定义的变量只在当前的shell环境中有效,因此成为局部变量。当进入子程序或新的子shell环境时,

    局部变量将无法再使用。为了使用户定义的变量在所有子shell环境中能够继续,可以通过export将指定变量导出为全局变量。

     

    数值变量的计算

    expr 变量1  运算符 变量2  [运算符 变量3] ...

     

    关于嵌套exp的语法:

     T=`expr $( expr $X + $Y ) $X `

     

    特殊的shell变量

    1.环境变量

    由系统提前创建,用来设置用户的工作环境

    配置文件:/etc/profile 、~/.bash_profile

    常见的环境变量:

    PWD、PATH

    USER、SHELL、HOME

     

    2、只读变量

    Shell变量中一种特殊情况,一经设定,其值是不可改变的,这种变量被称为只读变量。

     

    注:只读变量的改变是不可逆的,一经只读,无法挽回。

     

    3、位置变量(也称为位置参数,使用$1,$2,$3...$9表示)

    当执行命令行操作时,第一个字段表示命令名或脚本程序名,其余的字符串参数安装从左

    到右的书序依次赋值给位置变量。

     

    4、预定义变量

    $#:表示命令行中位置参数的个数

    $*:表示所有位置参数的内容

    $?:表示前一条命令执行后的返回状态,为0即正确,任何非0即出现异常

    $0:表示当前执行的脚本或程序的名称

     

  • 相关阅读:
    部分类Partial
    Ajax之XMLHttpRequest
    C#结构(Struct)
    sql数据管理语句
    mysql基本语句
    bootstrap插件-滚动监听
    一轮项目学习总结
    js滚动监听
    Ajax
    各框架、插件记录
  • 原文地址:https://www.cnblogs.com/xuhao0705/p/13762720.html
Copyright © 2020-2023  润新知