Shell编程规范与变量

目录

一.Shell 编程

(一)什么是Shell

(二)Shell的作用

(三)编程语言类型

(1)编译型

(2)解释型

(四)Shell脚本编写

(1)创建一个以.sh为结尾的文件

(2)申明解释器

(3)编写注释信息

(4)编写执行语句

(五)Shell脚本的运行

(1)在子shell环境中执行脚本的运行

(2)在当前shell环境中执行脚本

二.重定向符号

三.变量

(一)变量的定义

(1)变量名=变量值

(2)read -p "提示内容"  变量名          

(二)引号的作用

(三)变量的作用范围

(四)数字运算的方法

(1)整数运算

(2)浮点数运算

(五)变量的分类

(1)环境变量

(2)只读变量

(3)位置变量

(4)预定义变量


一.Shell 编程

(一)什么是Shell

Shell是计算机操作系统中的一种程序,用来作为用户与操作系统之间的界面,用户可以通过Shell来向操作系统发出指令,并接收操作系统的反馈。Shell可以是一个命令解释器,可以解释和执行用户输入的命令,也可以是一个脚本解释器,可以执行一系列预先编写好的指令。

(二)Shell的作用

Shell是存在于用户和内核之间的,它的存在就相当于一个“翻译”,将用户输入的指令进行解释翻译,然后发送给内核,由内核来调用执行硬件资源

(三)编程语言类型

(1)编译型

C   C++    JAVA    GO          #代码文件需要先编译后,程序才能执行

(2)解释型

SHELL    PYTHON              #代码是边解释边运行的

(四)Shell脚本编写

(1)创建一个以.sh为结尾的文件

vim XXX.sh

(2)申明解释器

#!/bin/bash        #!/bin/python

(3)编写注释信息

要以 # 号开头表示为注释,被注释的语句在脚本运行时是不会被执行的

#xxxxxxxxxxxxxxxx

(4)编写执行语句

按照顺序编写要执行的命令语句

(五)Shell脚本的运行

(1)在子shell环境中执行脚本的运行

bash 或 sh 指定脚本文件运行,可无执行权限

(2)在当前shell环境中执行脚本

source 或 . 指定脚本文件运行,可无执行权限

二.重定向符号

符号含义
<重定向输入,从文件读取数据
>重定向输出,将正常输出的数据信息保存到文件,并覆盖原文件内容
>>重定向追加,将正常输出的数据信息追加保存到文件末尾
2>重定向错误输出,将错误输出的数据信息保存到文件,并覆盖原文件内容
2>>重定向错误追加,将错误输出的数据信息追加保存到文件末尾
&>  >&混合输出,将正常和错误输出的数据信息都保存到文件,并覆盖原文件内容
&>>混合追加,将正常和错误输出的数据信息都追加保存到文件末尾

三.变量

(一)变量的定义

(1)变量名=变量值

          变量名只能用 _  A-Z a-z 开头

(2)read -p "提示内容"  变量名          

          从键盘输入中获取变量值

(二)引号的作用

双引号把引号里面的字符看作为引用XXX变量值的特殊符号
单引号把引号里面的字符看做普通字符,不会引用变量的值
反撇号提取里面的命令执行后的结果

(三)变量的作用范围

默认情况下自定义的变量只能在当前shell环境中有效

如何让自定义的变量在所有shell环境中有效:

(1)在 /etc/profile 文件中定义 export 变量名=变量值

         source /etc/profile 立即生效 或 重新登录系统自动生效

(2)在 /etc/bashrc 文件中定义 变量名=变量值

         切换 shell 环境自动生效

(四)数字运算的方法

(1)整数运算

        运算符号: +  -  *  /  %   

1)echo $(expr 整数1 运算符 整数2)  

      $(expr $变量1 运算符 $变量2)                    

2)echo $[整数1 运算符 整数2]      

      $[变量1 运算符 变量2]        

3)echo $((整数1 运算符 整数2))  

      $((变量1 运算符 变量2))      

(2)浮点数运算

1)echo '4.5+2.1' | bc

2)awk 'BEGIN{print 4.5+2.1}'

(五)变量的分类

(1)环境变量

env           #查看当前shell环境中所有可用的环境变量

/etc/profile    ~/.base_profile
export PATH  USER  PWD  HOME  LANG  HISTSIZE

(2)只读变量

readonly 变量名=变量值      #只读变量不允许被修改变量值和删除变量

(3)位置变量

./shell.sh  one  two  three  four .... ten  
      $0        $1   $2     $3     $4      ${10}

(4)预定义变量

$0     代表脚本本身
$#     代表脚本后面跟的位置参数的数量
$?     代表的是上一条Linux命令执行的返回状态码(0~255),0表示上一条命令执行正确,非0值则表示上一条命令执行异常
$*     默认代表脚本后面跟的所有参数,加上双引号后 "$*" 会把所有参数看做一个整体
$@   默认代表脚本后面跟的所有参数,加上双引号后 "$@" 还是会把每个参数看做

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值