Shell脚本初级学习

一、Shell简单介绍

shell是最通用的脚本语言,是用户和LINUX内核做数据交互的接口
bash shell是目前主流的shell工具
一个系统中可以存在多个shell 再Linux系统中我们可以使用以下命令查看

cat /etc/shells

在这里插入图片描述

二、Shell脚本的编写

1、创建、声明、运行

1、创建shell文件

touch hello.sh #创建名为hello的shell脚本
#.sh后缀名在linux里本身是没有意义的,但它可以起到提示程序员的作用

在这里插入图片描述
2、编写文件声明

在编写hello.sh文件时,第一句需要编写当前使用shell版本的声明,类似于C语言脚本的include<stdio.h>

#!/bin/bash 声明当前使用的shell的版本

3、运行shell脚本

sh hello.sh

hello.sh中的内容
在这里插入图片描述
运行后的结果
在这里插入图片描述

2、变量

shell中的变量一般分为两种

系统变量

系统变量:或称为全局变量,即系统所提供的变量 如($home $pwd 等),可以通过set命令打印显示所有的系统变量
在这里插入图片描述
系统变量在脚本中引用时需要大写
在这里插入图片描述

自定义变量

即用户根据自己的需要自行定义的变量
定义和使用方式如下

name="csdn"
echo $name

在定义变量时,应注意单引号和双引号的区别
单引号会使所有引号内的符号失去特殊作用,包括$,而双引号不会
如下进行说明
正常定义时
在这里插入图片描述
输出结果如下:
在这里插入图片描述
使用单引号时
在这里插入图片描述
在这里插入图片描述

变量权限

撤销变量
在shell中可以将自定义的变量进行撤销,被撤销的变量后续就无法再继续使用了
撤销命令如下:

unset name

在这里插入图片描述
可以看到,运行脚本后$name的值将不被显示
在这里插入图片描述
只读变量
可以定义变量为只读变量,只读变量不允许被撤销
定义命令如下:

readonly name="csdn"

在这里插入图片描述
如果执行撤销命令,将会进行报错显示
在这里插入图片描述

变量内容

shell脚本中的变量除了可以存储字符串、数值型数据外,还可以存储指令的运算值
如下所示
在这里插入图片描述
在这里插入图片描述

3、转义字符

当我们想要打印出C:\users\test; 时,需要使用""对其进行转义
即在hello.sh文件中应该如下编写
在这里插入图片描述
输出结果如下
在这里插入图片描述

4、运算

方式1:使用第三个变量存储
在这里插入图片描述
方式2:
在这里插入图片描述

5、循环

for循环
循环结构定义如下

# n为循环变量,1 2 3为n可以获得的值
for n in 1 2 3
do 
	echo $n   #循环体
done

在这里插入图片描述
运行结果如下
在这里插入图片描述
for循环也可以定义为如下结构

for((i=0;i<=5;i++))
do
	echo $i
done

在这里插入图片描述

while循环
在这里插入图片描述
运行结果
在这里插入图片描述

6、case语句

类似于C语言的switch语句
在这里插入图片描述
使用变量A中的值去匹配每个case,*是通配符
输出如下
在这里插入图片描述

7、条件语句

if 条件
then
     语句
elif 条件
then
		语句
else
		语句
fi

在这里插入图片描述
注意:
方括号后必须要有空格

运行结果如下
在这里插入图片描述注意:if中有一些常用的运算符

  • = 用来做字符串比较
  • -lt 数值的小于比较
  • -le 数值的小于等于
  • -eq 数值的相等
  • -gt 数值的大于
  • -ge 数值的大于等于
  • -ne 数值的不等于
  • ! 布尔运算非
  • -a 布尔运算与
  • -o 布尔运算或
    举个大于的例子说明一下:
    在这里插入图片描述
    输出为
    在这里插入图片描述

8、函数

定义如下:
在这里插入图片描述
运行如下
在这里插入图片描述

9、输入

read 可以从键盘获取一个输入,存储在本地变量,类似于C语言的scanf
在这里插入图片描述
运行结果
在这里插入图片描述
上述命令等价于

char name[20];
printf("输些东西");
scanf("%s",&name);
printf("%s",name);

10、输出

printf输出,类似于C语言的printf使用方式
在这里插入图片描述
在这里插入图片描述
没有双引号也可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值