shell脚本编程规范与变量_第1张图片



shell的作用:


shell脚本编程规范与变量_第2张图片


  • shell脚本编程规范与变量_第3张图片

  • shell脚本编程规范与变量_第4张图片


环境:

平台:VMware workstation 14

系统:CentOS Linux release 7.4.1708 (Core)


编写第一个shell脚本:

  image.png   注: sh为脚本格式   first为脚本的名称 

shell脚本编程规范与变量_第5张图片  first脚本中的内容

shell脚本编程规范与变量_第6张图片 给所有人加权


shell脚本的执行方式:

1 脚本的路径

     绝对路径 

           shell脚本编程规范与变量_第7张图片

     相对路径

               shell脚本编程规范与变量_第8张图片

   注:必须脚本文件要有执行权限

          

2      sh 脚本文件路径

      shell脚本编程规范与变量_第9张图片

     注: 如果脚本文件在opt目录下,  则: sh /opt/first.sh   /  先cd /opt  再 sh first.sh


3    source 脚本路径

    shell脚本编程规范与变量_第10张图片



注:2 -a 3可以不需要执行权限   1必须要



编写第二个shell脚本:

shell脚本的构成:

 1  脚本声明

  #!/bin/bash   声明后面的命令可以通过此shell程序去解释并执行

 2  注释信息

   摘要,脚本作用,参数说明,工作效率,创建日期,作者,版本声明,第几次修改,每次返回的动态值的定义等

 3  可执行的命令语句

    注:所有特殊符号必须是英文模式输入

实例1:新建文件



image.png

image.png

image.png

image.png

实例2:删除文件

shell脚本编程规范与变量_第11张图片

image.png

实例3:创建用户

shell脚本编程规范与变量_第12张图片

image.png

cat /etc/passwd

image.png

实例4: 创建指定容量的文件

shell脚本编程规范与变量_第13张图片


shell脚本编程规范与变量_第14张图片

实例5: 计划任务

crontab -e

image.png

image.png

每天的下午1点半执行2.sh这个脚本一次



更友好的显示脚本内容:

shell脚本编程规范与变量_第15张图片

image.png




重定向与管道操作:

shell脚本编程规范与变量_第16张图片

shell脚本编程规范与变量_第17张图片


实例6:使用密码文本文件 修改用户密码  


image.png

image.png

image.png

解:  创建一个密码文件passwd.txt  密码为:123456

tom为已有用户,将密码文件导给tom 实现重置tom的密码为123456


实例7:

image.png

image.png

将ls这条命令的输出保存到 1.txt文件中


shell脚本编程规范与变量_第18张图片

> 覆盖原有的内容

>>  追加


实例8:

shell脚本编程规范与变量_第19张图片


shell脚本编程规范与变量_第20张图片

将标准输出1.txt  标准错误输出2.txt中



shell脚本编程规范与变量_第21张图片

实例9:

shell脚本编程规范与变量_第22张图片

shell脚本编程规范与变量_第23张图片

shell脚本编程规范与变量_第24张图片

image.png




shell变量的作用,类型

shell脚本编程规范与变量_第25张图片


自定义变量

  1. 声明变量不需要声明类型

  2. 可以存储不同类型内容 A=wa1

  3. 有时候使用变量时要明确变量类型

  4. 严格区分大小写

  5. 等于号两边不允许出现空格

  6. 不能使用标点符号作为变量名

  7. 不能使用bash里面的关键字作为变量名

  8. 首个字符必须是字母(a-z A-Z或_)


格式   变量名=变量值

查看变量:

     echo $变量名

     echo ${变量名}


通过echo进行一个输出变量,其中$是引用变量的特殊字符(必须要使用$符号)


注:echo和调用的变量之间必须要有空格

       当需要一起调用多个变量时,以空格隔开

        当变量名和后面的字符混淆的时候,应使用{ }将变量名括起来


shell脚本编程规范与变量_第26张图片shell脚本编程规范与变量_第27张图片


变量赋值的特殊操作:

1 双引号 ""

   当变量值之间有空格的时候,要使用""括起来

image.png

2 单引号 ' '

禁止引用变量值,将$符号当作普通字符来使用

image.png

3 反撇号 ``

与$() 效果一样

作用:命令替换,提取命令执行的结果

shell脚本编程规范与变量_第28张图片

shell脚本编程规范与变量_第29张图片


image.png

优先执行反撇号里面的内容,再执行其他

变量赋值的时候,如果想要赋值的是某条命令执行的结果,必须使用反撇号

缺点:反撇号部不是现嵌套命令替换操作,这时候使用$()来替换


4 交互式赋值 read

read 命令用于提示用户输入信息,从而实现简单交互过程(输入命令就是一个交互式过程)

shell脚本编程规范与变量_第30张图片

多个变量名交互式赋值,赋值之间有空格,变量名也有空格

为了更友好,通常使用-p 来提示信息

image.pngshell脚本编程规范与变量_第31张图片


5 设置变量的作用范围

export  变量名 ...

export 变量名=变量值

作用:设置全局变量,所有子shell程序都可以使用此变量

shell脚本编程规范与变量_第32张图片

shell脚本编程规范与变量_第33张图片注:bash为切换环境 export导为全局变量


永久生效:

vi /etc/profile

export 变量名=变量值

source /etc/profile



整数变量的运算

expr 变量1 运算符 变量2 ...   

$(())          ++  --  **

 shell脚本编程规范与变量_第34张图片

shell脚本编程规范与变量_第35张图片image.png

    常用变量:

         +   -    \*    /   %




环境变量


配置文件:

全局

单用户:




 常见的环境变量

PWD :显示当前所在的工作目录

USER :  显示用户名称  可以查看当前登陆的用户

HOME:  用户的家目录 显示当前用户的家目录

LANG: 语言和字符集变量 

PATH: 命令搜索路径  , 可以用tab键补全

PS1: 提示符变量

SHELL:shell程序


shell脚本编程规范与变量_第36张图片shell脚本编程规范与变量_第37张图片



位置变量

shell脚本编程规范与变量_第38张图片

预定义变量

shell脚本编程规范与变量_第39张图片