Shell编程规范与变量

本文详细介绍了Shell的概述,包括其作用、常见的LINUX shell类型,如bash、csh和tcsh。讲解了shell脚本的构成,如解释器、注释和执行方式。此外,还涵盖了管道符号|、重定向操作、自定义变量的使用,包括局部变量、全局变量和整数运算。同时,讨论了特殊变量,如环境变量、只读变量、位置变量和预定义变量。文章最后提到了date命令的使用和总结了shell的重要功能。
摘要由CSDN通过智能技术生成

目录

一、shell的概述

1:什么是shell

2:LINUX中有哪些shell

3:shell脚本的作用

4:shell脚本的构成

1:脚本申请解释器:

2:注释信息

3:可执行语句

5:shell脚本的执行

1:方法一:

2:方法二: 

二、管道符号 |

1:定义

三、重定向 和重定向操作

 四、自定义变量

1:局部变量

变量名=变量值

 read  获取标准输入的内容给 变量

2:全局变量

 3:整数变量的运算

1:expr 数值或数量      运算符    数值或变量

 2:echo  $((数值 运算符 数值))

3:$[数值 运算符 数值] 

4:let  变量=数值运算符数值 

 5:let  i++ , let  i-- ,  let  i+=N

 4:小数点运算表达式

1:echo ”浮点运算表达式“   |  bc

2:awk  ‘BEGIN  {print  浮点运算表达式}’

五、特殊变量

1:环境变量

1:定义

 2:环境变量配置文件/etc/profile,每个用户独立配置文件(~/.bash_profile)

2:只读变量readonly 命令设置只读变量 

 3:位置变量

1:定义:

4:预定义变量

5:date日期

 六:总结


一、shell的概述

1:什么是shell

与内核沟通的界面、应用程序等等。比如你要播放音乐,你的计算机通过你在shell输入的打开音乐的命令,shell在高速操作系统的内核用户希望打开音乐,内核在通过cpu调度、内存管理、磁盘输入输出等工作,将硬件调动,这时硬件声卡才会工作,硬件才是实际的工作者

shell是一个特殊的应用程序,它介于操作系统内核与用户之间,充当一个“命令解释器”的角色,负责接收用户输入的操作指令并进行解释,将需要执行的操作传递给内核执行,并输出执行结果

2:LINUX中有哪些shell

cat /etc/shells  中含有linux所包含的shell

bash (/bin/bash) 是目前大多数linux版本采用的默认shell

bash:基准于GNU的框架下发展出的shell

csh:语法有点类似于c语言的shell。

tcsh:整合csh,提供更多功能

nologin:奇怪的shell,这个shell可以让用户无法登录主机

3:shell脚本的作用

自动化运维
批量化重复操作可以编写脚本结合计划任务自动周期运行
减轻管理员工作量
提高处理文本文件的速度
避免配置出错

4:shell脚本的构成

以.sh结尾的一般都是shell脚本

1:脚本申请解释器:

                               #!/bin/bash 

                               #!/usr/bin/python

                                #!/usr/bin/expect

2:注释信息

以#开头的语句表示为注释信息,被注释的语句在运行脚本时不回被执行

3:可执行语句

比如echo命令,用于输出“  ”之间的字符串

5:shell脚本的执行

1:方法一:

指定路径的命令,要求文件必须有x权限

指定相对路径:./sly.sh

指定绝对路径:

2:方法二: 

指定shell来解释脚本,不要求文件必须有x权限

sh 脚本路径:sh sly.sh或者bash .sly.sh

source 脚本路径:. sly.sh 或者source sly.sh

Source 或者. 运行当前shell环境 里面的代码

二、管道符号 |

1:定义

将管道符号 ” | “ 左侧的命令输出的结果,作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道

 

 

XXX  |   如果管道符号右边的命令一定需要执行对象的命令,则管道符号 后面要有xargs命令来传递执行参数

三、重定向 和重定向操作

交互式硬件设备

类型设备文件文件描述序号默认设备
标准输入/dev/stdin0键盘
标准输出/dev/stdout1显示器
标准错误输出/dev/stderr2显示器

重定向操作

类型操作符用途
重定向输入<从指定的文件读取数据
重定向输出>将标准输出结果 保存到指定的文件,并且覆盖原有内容
>>将标准输出结果 追加到指定的文件的尾部,不覆盖原有内容
标准错误输出2>将错误信息保存到指定的文件,并且覆盖原有内容
2>>将错误信息追加到指定的文件的尾部,不覆盖原有内容
混合输出&>将标准输出、标准错误保存到同一文件中
2>&1将标准错误输出重定向到标准输出

 

 注意:一定要关闭核心安全防护  setenforce 0 否则可能会影响此命令执行

ls -lh > log.txt 2>&1 =  ls -lh &> log.txt

本来1---》屏幕(1指向屏幕)

执行>log后,

 

 四、自定义变量

1:局部变量

变量名=变量值

变量名字以字母或者下划线开头,区分大小写,建议全大写

 read  获取标准输入的内容给 变量

2:全局变量

 export 变量名=变量值

 3:整数变量的运算

1:expr 数值或数量      运算符    数值或变量

加法运算+
减法运算-
乘法运算\*
除法运算/
求模或者取余运算%

 2:echo  $((数值 运算符 数值))

3:$[数值 运算符 数值] 

4:let  变量=数值运算符数值 

 5:let  i++ , let  i-- ,  let  i+=N

 4:小数点运算表达式

1:echo ”浮点运算表达式“   |  bc

2:awk  ‘BEGIN  {print  浮点运算表达式}’

五、特殊变量

1:环境变量

1:定义

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

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

 2:环境变量配置文件/etc/profile,每个用户独立配置文件(~/.bash_profile)

2:只读变量readonly 命令设置只读变量 

readonly  命令用于定义只读shell变量和shell函数

readonly 不能添加 只能重启

 删除变量  unset

 3:位置变量

1:定义:

当执行命令行操作时,第一个字段表示命令名或脚本程序名,其余的字符串参数按照从左到右的顺序依次赋值给位置变量。


$n: n为数字,$0代表命令本身,$1- $9代表带一个到第九个参数,十以上的参数需要使用大括号表示,比如第十个参数为${10}

4:预定义变量

1:$*和$@:表示命令或脚本要处理的参数

2:$*和$@加双引号

“$*”:把所有参数堪称以空格分隔的一个字符串整体(单字符串)返回,代表“$1  $2  $3  $4”

”$@“:把各个参数加上双引号分隔成n份的参数列表,每个参数作为一个字符穿返回,达标“$!"“$2”

"$3"

3:$0:表示当前执行的脚本或命令的名称。

4:$#:表示命令或者脚本要处理的参数的个数

 

5:$?:表示前一条命令或脚本执行后的返回状态码, 返回值为0表示执行正确,返回任何非0值表示执行出现异常。也常被用于shell脚本中return退出函数并返回的退出值

 

5:date日期

1:date 显示本机日期

2:date  +“%Y%m%d”显示年月日

3:上一天date -d "-1 day" +"%Y%m%d"

 

 

 4:上个月的一号date -d "last-month" +"%Y%m01"

 六:总结

shell的作用

shell脚本的编写规范 

数值变量的运算

管道符号|  重定向

自定义变量复制的单引号、双引号、反撇号的使用方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值