Linux Shell编程规范与变量

本文详细介绍了Linux Shell的基础知识,包括其作用、常见类型如bash,以及脚本的编写、执行逻辑和错误类型。重点讲解了重定向和管道操作,展示了如何利用它们进行数据处理。此外,还深入探讨了Shell变量的使用,包括自定义变量、赋值规则、作用范围和环境变量。文章适合初学者了解和掌握Shell编程的基本技能。
摘要由CSDN通过智能技术生成

目录

Linux Shell编程规范与变量

一、Shell

shell的作用

shell的构成

 二、脚本

脚本概念

脚本应用场景

脚本执行逻辑

脚本执行方式

 脚本错误类型

三、重定向与管道操作

重定向操作

 管道操作

 四、变量

shell变量的作用

shell变量的类型

自定义变量

 赋值时使用引导

 变量的作用范围

环境变量


Linux Shell编程规范与变量

一、Shell

shell的作用

命令解释器,“翻译官”
介于系统内核与用户之间,负责解释命令行

常见的shell

bash:基于gun的框架下发展的shell
csh:类似c语言的shell
tcsh:整合了csh提供了更多功能
sh:已经被bash替换
nologin:这个shell可以让用户无法登陆

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

shell的构成

将命令按顺序一一列出,最后自动执行
执行需要权限,也可以直接调用

脚本申明(解释器):第一行开头“#!/bin/bash”,表示此行一下的代码语句是通过/bin/bash程序来解释执行的
#!/bin/bash为默认的解释器还有其他类型的解释器,#!/bin/python、#!/bin/expect

注释信息:以#开头的语句表示为注释信息

可执行语句:比如echo命令用于输入“ ”之间的字符串

 二、脚本

脚本概念

将要执行的命令按顺序保存到一个文本文件
给该文件可执行权限
可结合各种Shell控制语句以完成更复杂的操作

脚本应用场景

重复性操作
交互性任务
批量事务处理
服务运行状态监控
定时任务执行

脚本执行逻辑

顺序执行:程序从上而下顺序执行
选择执行:程序执行过程中,根据条件的不同进行选择不同分支继续执行
循环执行:程序执行过程中需要重复执行多次某段语句

脚本执行方式

指定路径去执行文件(需要有执行权限)

 指定解释器去执行(不需要权限)

 脚本错误类型

一类命令错误命令出错时不会影响接下来的命令继续

语法错误

逻辑错误

bash -n 脚本名称 (不在当前目录下加绝对路径)   //检查语法错误
bash -x  脚本名称(不在当前目录下加绝对路径)   //逻辑错误

脚本错误常见的三种区别

语法错误:会导致后续的命令不继续执行,可以用bash -n 检查错误,提示的出错行数不一定准确
命令错误:默认后续的命令还会继续执行,用bash -n 无法检查出来,可以使用bash -x进行观察
逻辑错误:只能使用bash -x 进行

三、重定向与管道操作

交互式硬件设备

标准输入:从该设备接收用户输入的数据
标准输出:通过该设备向用户输出数据
标准错误:通过该设备报告执行出错误信息

类型                   设备文件             文件编号                  默认设备
标准输入             /dev/stdin              0                            键盘
标准输出             /dev/stdout            1                          显示器
标准错误输出      /dev/stderr             2                          显示器 

重定向操作

例:将123456重定向输出到pass.txt文件中,然后将pass.txt的内容重定向输入给用户张三的密码,从pass.txt 文件中取密码,需要注意SELinux 会影响此命令执行,若执行失败可尝试关闭SELinux(setenforce 0)

例:追加

ls -lh > test.txt 2>&1 等同于 ls -lh &> test.txt 

> (将标准输出结果保存到指定的文件)

2>&1(将标准错误输出重定向到标准输出)

&>(将标准输出、标准错误输出保存到同一文件) 

 管道操作

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

 四、变量

shell变量的作用

用来存放系统和用户需要使用的特定参数(值)
变量名:使用固定的名称,由系统预设或用户定义
变量值:能够根据用户设置、系统环境的变化而变化

shell变量的类型

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

特殊变量:环境变量,只读变量,位置变量,预定义变量

自定义变量

定义新的变量

格式:变量名=变量值

查看定义变量的值

格式:echo  $变量名

 赋值时使用引导

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

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

反撇号:命令替换,提取命令执行后的输出结果,``和 $(…)作用相同

从键盘上输入内容为变量赋值

read命令获取输入内容

格式:read -p 提示信息 变量名

在脚本中编写,在命令行实现read获取

 变量的作用范围

局部变量:默认情况下,新定义的变量只在当前的Shell环境中有效,因此称为局部变量。当进入子程序或新的子Shell环境时局部变量将无法再使用

全局变量:可以通过内部命令export将指定的变量导出为全局变量,使用户定义的变量在所有的子Shell环境中能够继续使用

临时设置变量

永久设置变量,需要在/etc/profile 文件里面添加 

 整数变量的算术计算

运算符:+ 加法、- 减法、* 乘法、/ 除法、% 取余

常见表达式

expr  变量1  运算符  变量2

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

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

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

let  var=变量1  运算符  变量2

使用管道符

 expr不可计算小数,并且变量和运算符之间需要空格分隔

计算乘法时,需要使用 “\” 转义符

取余只要除后的余数

随机取余 

 使用let

i++ 和 ++i

环境变量

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

变量USER表示用户名称,HOME表示用户的宿主目录,LANG表示语言和字符集,PWD表示当前所在的工作目录,变量PATH表示可执行程序的默认搜索路径

配置文件:/etc/profile(全局生效)~/.bash_profile(当前用户环境)

使用awk提取IP地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值