Shell脚本编写

本文详细介绍了Shell脚本的概念、特性和应用场景,包括自动化常用命令、系统管理和入侵检测等。通过实例展示了如何创建和运行Shell脚本,包括声明序列、注释、变量和算术运算。还探讨了变量命名规则、变量类型以及文件测试操作。文章提供了多个脚本示例,如计算文件中用户ID之和、权限检查和条件判断,帮助读者掌握Shell脚本编写技巧。
摘要由CSDN通过智能技术生成

1.什么是Shell脚本

Shell脚本是利用 shell 的功能所写的一个程序 program,这个程序是使用纯文本文件,将一些 shell 的语法与指令(含外部指令)写在里面, 搭配正则表达式、管线命令与数据流重导向等功能,以达到我们所想要的处理目的。

Shell 脚本可以简单的被看成是批处理文件, 也可以被说成是一个程序语言,且这个程序语言由于都是利用 shell 与相关工具指令, 所以不需要编译即可执行,且拥有不错的除错 (debug) 工具,所以,shell可以帮助系统管理员快速的管理好主机。

2.Shell脚本特性

自动化常用命令

追踪与管理系统的重要工作

简单入侵检测功能

连续指令单一化

简易的数据处理

跨平台支持与学习历程较短

3.创建shell 脚本

第一步:使用文本编辑器(vim)来创建文本文件

第一行必须包括shell 声明序列:#!

#!/bin/bash (告诉系统执行的时候要调用什么解释器)

添加注释

注释以# 开头 (# 都是批注用途,加在#后面的数据都被当做批注文字)

第二步:运行脚本

给予执行权限,在命令行上指定脚本的绝对或相对路径

直接运行解释器,将脚本作为解释器程序的参数运行

例:计算/etc/passwd文件中的第10个用户和第20个用户的ID之和

复制代码

#!/bin/bash
#Filename:ID.sh
文件名:ID.sh
#Description:Test
描述:测试
#Author:Rookie
作者:菜鸟

#Program: This program shows “ID sum!” in your screen.

程序:这个程序显示“ID和!“在你的屏幕上
#Email:xxx@126.com
电子邮件:xxx@126.com
#Revision:3.1
修订号:3.1
#Date:2017-04-14
日期:2017-04-14
#Note:Test

#The 10th in the/etc/passwd file ID of the user
在/etc/passwd文件中第10个用户的ID
id1=KaTeX parse error: Expected 'EOF', got '#' at position 48: …| cut -d: -f3) #̲The 20th in the…(head -20 /etc/passwd | tail -1 | cut -d: -f3)
#Calculate a 10th of the/etc/passwd file users and 20th the sum of the user’s ID
计算/etc/passwd文件中的第10个用户和第20个用户的ID之和
sum=$((id1+id2))

echo ${sum}

复制代码

按 i 键进入输入模式进行编辑

编辑完成后按 ESC键,进入编辑模式后按 ;输入wq保存退出

[root@station29 scripts]# bash ID.sh
sum=180 执行结果 ID和为180

变量:命名的内存空间

数据存储方式:

字符:

数值:整型,浮点型

变量:变量类型

作用:

1 、数据存储格式

2 、参与的运算

3 、表示的数据范围

类型:

字符

数值:整型、浮点型

变量

强类型 :变量 不经过强制转换,它永远是这个数据类型,不

允许隐式的类型 转换。一般定义变量时必须指定类型、参与

运算必须符合类型要求;调用未声明变量会产生错误

如 java,c#

弱类型:语言的运行时会隐式做数据类型 转换。无须指定类

型,默认均为字符型;参与运算会自动进行隐式类型转换;

变量无须事先定义可直接调用

如:bash 不支持浮点数,php

变量命名法则:

1 、不能使程序中的保留字:例如if, for

2 、只能使用数字、字母及下划线,且不能以数字开头

3 、见名知 义

4 、统一命名 规则:驼峰命名法

bash 中变量的种类:

根据变量的生效范围等标准:

本地变量:生效范围为当前shell 进程;对当前shell 之外

的其它shell 进程,包括当前shell 的子shell 进程均无效

环境变量:生效范围为当前shell 进程及其子进程

局部变量:生效范围为当前shell 进程中某代码片断( 通常

指函数)

--------shell-----父shell ----------------

              |                     |

              |-----------bash 子shell-----|

子shell只会继承环境变量 并不会继承父shell中的变量

. 或者 source /etc/profile 只在当前的shell环境中执行,一般用来校对环境变量

位置变量:$1, $2, … 来表示,用于让脚本在脚本代码

中调用通

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值