Shell脚本从入门到实战

本文介绍了Shell脚本的基础知识,包括脚本格式、系统及自定义变量、特殊变量、运算符、条件判断和流程控制结构。通过实例展示了如何编写和执行简单的Shell脚本,以及如何进行条件判断和循环操作。此外,还涵盖了常用的Shell工具,如cut、sed和awk的基本用法。

Shell

shell概述

Shell是一个命令行解释器,他接收应用程序/用户命令,然后调用操作系统内核,Shell是一个功能相当强大的编程语言,易于编写,调试,灵活性强。

Shell脚本入门

1. 脚本格式

脚本以#!/bin/bash开头(指定解析器)

2. 第一个Shell脚本:helloworld

首先我们创建一个shell脚本文件:helloworld.sh

image-20230122153423681

#!/bin/bash
echo "helloworld"

保存之后运行

sh执行:

sh helloworld.sh

bash执行:

bash helloworld.sh

绝对路径sh执行:

sh /home/zsb/helloworld.sh

image-20230122154938909

但是./helloworld.sh不行,为什么呢?

image-20230122155145996

因为sh与bash是代替我们去执行,而我们自己执行时会显示没权限,脚本本身不需要执行权限,第二种本质是脚本需要自己执行,所以需要执行权限,我们查看一下文件的权限:

image-20230122155329315

发现没有执行权限,故chmod就可以执行了:

image-20230122155416755

3. 第二个Shell脚本:多命令处理

在/home/zsb/目录下创建一个banzhang.txt,在banzhang.txt文件中增加"I love cls"。

#!/bin/bash

cd /home/zsb/
touch banzhang.txt
echo "I love cls" >> banzhang.txt

image-20230122163418143

Shell中的变量

系统变量
1. 常用系统变量

$HOME、$PWD、$SHELL、$USER等。

2. 案例实操
[zsb@VM-4-8-centos ~]$ echo $HOME	//家目录
/home/zsb
[zsb@VM-4-8-centos ~]$ echo $PWD 	//当前所处目录
/home/zsb
[zsb@VM-4-8-centos ~]$ echo $SHELL  //当前默认shell
/bin/bash
[zsb@VM-4-8-centos ~]$ echo $USER	//当前用户
zsb
自定义变量
1. 基本语法
  • 定义变量:变量=值
  • 撤销变量:unset 变量
  • 声明静态变量:readonly 变量,注意:不能unset
[root@VM-4-8-centos zsb]# A=1
[root@VM-4-8-centos zsb]# echo $A
1
[root@VM-4-8-centos zsb]# unset A
[root@VM-4-8-centos zsb]# echo $A

[root@VM-4-8-centos zsb]# readonly A=1
[root@VM-4-8-centos zsb]# echo $A
1
[root@VM-4-8-centos zsb]# unset A
bash: unset: A: cannot unset: readonly variable

readonly变量在关掉ssh后自动消除。

2. 变量定义规则
  • 变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。
  • 等号两侧不能有空格。
  • 在 bash中,变量默认类型都是字符串类型,无法直接进行数值运算。
  • 变量的值如果有空格,需要使用双引号或单引号括起来。
  • 可把变量提升为全局变量,可供其他shell程序使用,export 变量
[root@VM-4-8-centos zsb]# B = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小赵小赵福星高照~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值