shell编程(一)

本文详细介绍了SHELL,它是操作系统和应用程序间的命令解释器,负责命令解释与结果反馈。还介绍了SHELL分类,包括图形界面和命令行式。重点讲解了shell脚本的使用方式、定义、基础知识,如创建、执行、规范、变量等,最后进行了shell进阶,涵盖测试语句、表达式、常见符号等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.什么是SHELL:

SHELL是一个操作系统和应用程序之间的命令解释器

2.SHELL的作用:

shell负责把应用程序的输入命令信息解释给操作系统,

将操作系统指令处理后的结果解释给应用程序。

3.SHELL的分类:

图形界面shell: 常说的桌面

命令行式shell: 常用的是windows下的cmd和linux下的bash

4.shell脚本简介

4.1 shell的使用方式:

手工方式: 逐行输入命令,逐行进行确认执行

脚本方式: 把手工输入的命令放到一个脚本文件中,通过执行这个脚本文件达到执行手工输入执行命令的效果

4.2 shell脚本的定义

当可执行的Linux命令或语句不在命令行状态下执行,

而是通过一个文件执行时,我们称文件为shell脚本。

5.shell脚本的基础知识

5.1创建脚本

编辑工具:vi / vim

脚本命名:要有意义,知道是做什么的

脚本内容:能够执行的命令

注释方式:单行注释和多行注释

单行注释:除了首行的#不是注释以外,其他所有行内容,只要有#,就代表该行是注释

#!/bin/bash

echo '1'

#echo '2'

echo'3'

多行注释:格式为-----> :<<! 内容 !和:<<字符 内容 字符

# ! /bin/bash
echo '1'
:<<a echo '2'
echo '3'
echo'4'
a
echo '5'

5.2执行脚本

bash /path/to/script-name 或 /bin/bash /path/to/script-name (强烈推荐使用)

/path/to/script-name 或 ./script-name (当前路径下执行脚本)

source script-name 或 . script-name (注意“.“点号)

5.3脚本开发规范

1、脚本命名要有意义,文件后缀是.sh

2、脚本文件首行是而且必须是脚本解释器:#!/bin/bash

3、脚本文件解释器后面要有脚本的基本信息等内容

4、脚本文件常见执行方式:bash 脚本名

5、脚本内容执行:从上到下,依次执行

6、代码书写优秀习惯:成对内容的一次性写出来,防止遗漏。

5.4.变量

1.变量的定义

变量包括两部分:变量名和变量值

2.本地变量

本地变量就是:在当前系统的某个环境下才能生效的变量,作用范围小。

本地变量包含两种:普通变量和命令变量

普通变量(三种方式)

变量名=变量值:变量值必须是一个整体,中间没有特殊字符

变量名='变量值':我看到的内容,我就输出什么内容

变量名="变量值":如果变量中有以前的变量名,会显示原有内容+以前的变量值

命令变量:

格式一:变量名=`命名`

格式二:变量名=$(命名)---->常用

全局变量

格式一:变量名=变量

export 变量名

格式二:export 变量名=变量值

查看变量是否存在:env | grep 文件名

变量的查看和删除

查看:1.echo $变量名--->自己用

2.echo "$变量名"--->自己用

3.echo ${变量名}---->标准写法

4.echo "${变量名}"---->最规范的写法

删除: unset 变量名----->取消变量(全局变量和本地变量)

5.5shell内置变量(一)

1.$0--->自动获取当前脚本的名称

#!/bin/bash

# 获取脚本的名称

echo "我脚本的名称是: file.sh"

echo "我脚本的名称是:$0"

2.$n--->获取当前脚本传入的第n个位置的参数

#!/bin/bash

# 获取指定位置的参数

echo "第一个位置的参数是: $1"

echo "第二个位置的参数是: $2"

echo "第三个位置的参数是: $3"

echo "第四个位置的参数是: $4"

3.$#--->获取当前脚本传入的参数的数量

#!/bin/bash

# 获取当前脚本传入的参数数量

echo "当前脚本传入的参数数量是: $#"

4.$?--->执行上一次指令的返回值

执行方式:   echo $?

执行结果:(0为成功,非0为失败)

字符串精确截取

格式:${变量名:起始位置:截取长度}

简单示例:

  ${file:0:5} 从第1个字符开始,截取5个字符

 ${file:5} 从第6个字符开始,截取后面所有的字符

 ${file:0-5} 从倒数第5个字符开始,截取后面所有的字符

5.6shell内置变量(二)

两种默认值

1.有条件的默认值:

格式:${变量名:-默认值}

不传参数:输出默认值(bash 文件名)

传参数:输出参数(bash 文件名 参数)

2.强制的默认值:输出默认值,传参没有用

格式: ${变量名+默认值}

6.shell进阶

6.1测试语句

格式1: test 条件表达式

格式2:[ 条件表达式 ]------>常用

注意:

以上两种方法的作用完全一样,后者为常用。

但后者需要注意方括号[ ]与条件表达式之间至少有一个空格。

数字与字符之间也必须要有一个空格-->[ 1 = 2 ]

执行echo $?,0-条件成立/1-条件不成立

条件成立,状态返回值是0

条件不成立,状态返回值是1

6.2表达式

条件表达式:

1.逻辑表达式:&& 和 ||

命令1 && 命令2---->你执行我也执行,你不执行我也不执行

命令1 || 命令2------->你执行我不执行,你不执行我执行

&& 和 || 的组合:

[ 1 = 2 ]&& echo "条件成立" || echo "条件不成立"--条件不成立

[ 1 = 1 ]&& echo "条件成立" || echo "条件不成立"--条件成立

2.文件表达式

-f ---->判断输入内容是否是一个文件

-d---->判断输入内容是否是一个目录

-x---->判断输入内容是否可执行

案例:判断一个文件,如果存在,提示存在,不存在,就创建一个

[ -f moren13.sh ]&& echo "已经存在的文件" || touch moren13.sh

3.数字表达式

[ n1 -eq n2 ] 判断是否相等

[ n1 -gt n2 ] 判断n1是否大于n2

[ n1 -lt n2 ] 判断n1是否小于n2

4.字符串表达式

  [ a == a ] 判断字符串内容是否一致

[ a != a ] 判断字符串内容是否不一致

计算表达式:

1.$(( 计算表达式))

echo $((100/5))----> 20

注意:$(())中只能用+-*/和()运算符,并且只能做整数运算

2.let 计算表达式

格式:let 变量名a=变量名a+1

注意:表达式必须是一个整体,中间不能出现空格等特殊字符

练习:

i=1

let i=i+7

echo $i

结果:8

6.3Linux常见符号

重定向:> , >>

管道: |

6.4其他符号

后台执行符号: &

定义:& 就是将一个命令从前台转到后台执行

使用格式:命令 &

信息符号:

1 表示正确输出的信息

2 表示错误输出的信息

2>&1 代表所有输出的信息

设备文件(linux系统垃圾桶)

/dev/null 是linux下的一个设备文件,

这个文件类似于一个垃圾桶,特点是:容量无限大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐风的测开笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值