• 01 shell编程规范与变量


    前言:

    大家对shell脚本应该都不算陌生了,如果突然问你什么是shell脚本?是干什么用的?由什么组成以及怎么使用?变量的概念是什么?作用范围是什么?变量间的算术运算怎么表示?你能很容易答出来吗

    本文整理自博主当年的学习笔记,若有疏漏欢迎指正!

    Shell编程规范与变量

    学习目标:

    掌握shell脚本编程规范

    掌握管道,重定向,变量

    目录结构:

     

    Shell脚本的概念

    1. 将要执行的命令按顺序保存到一个文本文件
    2. 给文件可执行权限,便可运行。
    3. 可以结合各种shell控制语句以便完成更复杂的操作
    4. 脚本文件一般以.sh结尾,执行脚本的命令是sh

    Shell脚本应用场景

    1. 重复性操作
    2. 批量事物处理
    3. 自动化运维
    4. 服务运行状态监控
    5. 定时任务执行
    6. ……

    Shell脚本的组成

    1、 脚本声明 #!/bin/bash一般是这样的

    2、 注释信息 以#开头注释脚本大概情况

    3、 可执行语句 就是指正文,命令的叠加

    编写shell脚本

    [root@poll ~]# vi a.sh   //编辑脚本文件,脚本文件一般都是以.sh结尾的

    #!/bin/bash   //声明这是·一个脚本

    #This is my first shell-script   //注释一般用来记录脚本的功能

    #2018-03-16   //注释 记录脚本时间

    cd /boot   //切换到/boot目录下

    echo "当前目录位于:"   //显示双引号内的内容

    pwd   //显示当前目录

    echo "其中以vml开头的文件包括:"   //显示双引号内的内容

    ls -lh vml*   //执行命令

    注意:有交互用read -p 没有用echo

    Shell脚本的执行方式

    1、 绝对路径

    2、 相对路径

    3、 sh脚本

    4、 source脚本

    shell脚本变量揭秘

    变量概念与分类

    变量的概念:

    1、 变量用来存放系统或用户需要使用的特定参数或者值

    2、 变量的的值可以根据用户设定或者系统环境的变化面相应变化

    3、 在shell脚本中使用命令可以使脚本更加灵活,适应性更强

    变量的分类:

     自定义变量:由用户自己定义,修改和使用

     环境变量:由系统维护,用于设定系统环境

     位置变量:通过命令行给脚本程序传递参数

     预定义变量:bash中内置的一种变量,不能直接修改

    变量的定义与输出

    定义一个新的变量

    格式:变量名=变量值

    变量名以字母或者下划线开头

    区分大小写

    赋值可使用引号

    双引号:允许通过$符号引用其他变量值

    单引号:禁止引用其他变量值,$视为普通字符

    反撇号``或$():命令替换,提取命令的执行结果

     

    输入输出

    输入格式:read [-p “提示信息”] 变量名

    输出格式:echo $变量名

     

    变量作用范围

    l  ’默认情况下,新定义的变量只在当前shell环境中有效,因此称为局部变量

    l  当进入子程序或新的子shell环境时,局部变量无法再使用

    l  为了使用户定义的变量在所有的子shell环境中能够继续使用,减少重复设置工作,可以通过内部命令export将制定的变量导出为“全局变量”

    格式1:export 变量名…

    格式2:export 变量名=变量值 …

    两种格式可以混合使用

    变量的算术运算

    l  变量的数值运算多用于脚本程序的过程控制

    l  只能进行简单得整数运算,不支持小数运算

    l  整数值得运算主要通过内部命令expr进行

    l  格式

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

    l  +:加法运算

    l  -:减法运算

    l  * :乘法运算,注意不能仅使用“*”符号,否则将被当成文件通配符

    l  /:除法运算

    l  %:求模运算,又称为取余运算,用来计算数值相除后的余数

    实例:

    [root@poll ~]# x=35

    [root@poll ~]# y=16

    [root@poll ~]# expr $x + $y

    51

    [root@poll ~]# expr $x - $y

    19

    [root@poll ~]# expr $x * $y

    560

    [root@poll ~]# expr $x / $y

    2

    [root@poll ~]# expr $x % $y

    预定义变量

    l  预定义变量是由bash程序预先定义好的一类特殊变量,用户只能使用预定义变量,而不能创建新的预定义变量,也不能直接为预定义变量赋值

    l  预定义变量使用“$”符号和另一个符号组合表示

    l  $*  $@

    保存了脚本要处理的所有参数

    l  $0

    保存了脚本的名称

    l  $?

    保存着命令或者脚本运行状态码,上一条命令运行成功结果显示0

    l  $#

    保存了脚本要处理的参数个数

    位置变量

    l  为了在使用shell脚本程序时,方便通过命令行为程序提供操作数,bash引入了位置变量的概念

    l  位置变量有$0,$n,n为1~9之间的数字

    l  $0:第一个字段表示命令名或脚本程序名

    l  $1为脚本要处理的第一个参数,$2为第二个参数,……

    l  Shell脚本最多可以直接处理9个参数

    环境变量

    l  环境变量指的是出于运行需要而由Linux系统提前创建的一类变量,主要用于设置用户的工作环境

    l  使用env命令可以查到当前工作环境下的环境变量

    l  PATH环境变量用于设置可执行程序的默认搜索路径

    l  环境变量的全局配置文件为/etc/profile,每个用户还有自己的独立的配置文件~/.bash_prpfile

    这是shell编程初步接触,后续发各种shell编程语句。下面有一个简单的脚本样例

    ------一个小计算器-----

    #!/bin/bash

    #this

    read -p "请输入第一个整数:" ONE

    read -p "请输入第二个整数:" TWO

    read -p "请输入运算符:" TH

    echo "$ONE$TH$TWO=$(($ONE $TH $TWO))"

  • 相关阅读:
    Oracle:ORA-12154: TNS:could not resolve the connect identifier specified
    asp.net mvc4 controller
    asp.net MVC4 学习(一)
    Nuget用法
    asp.net mvc4 新特性
    arcgis for silverlight 相关学习资料整理
    (转)ASP.NET 4.0 尚未在 Web 服务器上注册
    EasyUI TreeGrid
    CollabNetSubversionEdge 4.0.4教程
    C# 混淆 反编译
  • 原文地址:https://www.cnblogs.com/tzlsj/p/9145018.html
Copyright © 2020-2023  润新知