Linux中Shell脚本

Linux中Shell脚本1.shell脚本基础1.1shell的作用Linux系统中的Shell是一个特殊的应用程序,它介于操作系统内核与用户之间,充当了一个“命令解释器”的角色,负责接收用户输入的操作指令(命令)并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。常见的Shell解释器程序有

大家好,欢迎来到IT知识分享网。

1.shell脚本基础

1.1 shell的作用

Linux 系统中的 Shell 是一个特殊的应用程序,它介于操作系统内核与用户之间,充当 了一个“命令解释器”的角色,负责接收用户输入的操作指令(命令)并进行解释,将需要执 行的操作传递给内核执行,并输出执行结果。 常见的 Shell 解释器程序有很多种,使用不同的 Shell 时,其内部指令、命令行提示符 等方面会存在一些区别。通过/etc/shells 文件可以了解当前系统所支持的 Shell 脚本种类。

1.2linux中常见的shell

  • bash:基于gun的框架下发展的shell     (/bin/bash)是目前大多数Linux 版本采用的默认shell

  • csh:类似c语言的shell

  • tcsh:整合了csh提供了更多功能

  • sh:已经被bash替换

  • nologin:让用户无法登录

1.3shell脚本用途

  • 将简单的命令组合完成复杂的工作,自动化执行命令,提高工作效率

  • 减少手工命令的重复输入,一定程度上避免人为错误

  • 将软件或应用的安装及配置实现标准化

  • 用于实现日常性的,重复性的运维工作,如:文件打包压缩备份,监控系统运行状态并实现告警等

Linux中Shell脚本

 2.shell脚本执行及构成

2.1shell脚本构成

1.脚本申明(解释器):#!/bin/bash

2.注释信息(以#开头的语句):表示为注释信息 #

3.可执行语句(echo命令用于输出):可执行的语句

2.2shell脚本执行

  • 顺序执行:程序按从上到下顺序执行
  • 选择执行:程序执行过程中,根据条件的不同,进行选择不同分支继续执行
  • 循环执行:程序执行过程中需要重复执行多次某段语句(已知次数、已知条件、死循环)

Linux中Shell脚本

 

Linux中Shell脚本

 Linux中Shell脚本

 执行脚本需要执行的权限

Linux中Shell脚本

 绝对路径执行权限

执行脚本是要不全的话需要制作一个软路由

 

 3.脚本错误调试

  • 命令错误

    • 不会影响脚本执行
  • 语法错误

    • 会影响脚本执行
  • 逻辑错误

    • 自己筛查
检测脚本错误
bash -n 脚本名称 检查语法错误 bash -x 脚本名称 检查逻辑错误

总结:脚本错误常见的有三种区别

  1. 语法错误,会导致后续的命令不继续执行,可以用bash -n 检查错误,提示的出错行数不一定是准确的

  2. 命令错误,默认后续的命令还会继续执行,用bash -n 无法检查出来 ,可以使用 bash -x 进行观察

  3. 逻辑错误:只能使用 bash -x 进行

 4.重定向与管道符

4.1重定向

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

交互式硬件设备

  • 标准输入:从该设备接收用户输入的数据

  • 标准输出:通过该设备向用户输出数据

  • 标准错误:通过该设备报告执行出错信息

重定向的意思就是 ,不通过标准输出到屏幕上,输出到你指定的位置

类型 操作符 用途
重定向输入 < 从指定的文件读取数据,而不是从键盘输入
重定向输出 1> 将输出结果保存到指定的文件(覆盖原有内容)
>> 将输出结果追加到指定的文件尾部  
标准错误输出 2> 将错误信息保存到指定的文件(覆盖原有内容)
2>> 标准错误输出结果追加到指定的文件尾部  
混合输出 &>无论对错都可以重定向

将标准输出、标准错误的内容保存到同一个文件中

 

4.1管道符

将左侧的命令输出结果,作为右侧命令的输入(处理对象)可以叠加使用

Linux中Shell脚本

 

 5.变量

5.1变量基础

常见 Shell 变量的类型包括:

自定义变量:由用户自己定义,修改和使用
环境变量:由系统维护,用于设置工作环境
只读变量:只可以读取不可以更改
位置变量:通过命令行给脚本传递参数
预定义变量:Bash中内置的一类变量,不能修改

系统内置变量:PATH,UID,HOSTNAME,USER

5.2命名要求

  • 区分大小写

  • 不能使程序中的保留字和内置变量:如:if, for,hostname 命令 a=

  • 只能使用数字、字母及下划线,且不能以数字开头,注意:不支持短横线 “ – ”,和主机名相反

  • 不要使用内置的变量,使用英文尽量使用词义通俗易懂,PATH

  • 大驼峰 StudentFirstName

  • 小驼峰 studentFirstName

  • 下划线 student_name

5.3read -p

从键盘输入的内容变成变量

方法一:可以直接命令写入

Linux中Shell脚本

 方法二:可以写入脚本内

Linux中Shell脚本

Linux中Shell脚本

 

Linux中Shell脚本

 5.4变量作用范围

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

可以通过内部命令export将指定的变量为全局变量,使用户定义的变量在所子shell环境中可以继续使用

方法:

  1. 格式1:export 变量名

  2. 格式2:export 变量名=变量值

可以使用pstree 查看shell的环境

输入bash进入子shell

ctrl+D组合exit 退出子shell

 

 5.5整数的运算

格式: expr 变量1 运算符 变量2 [运算符 变量3]

expr只能进行整数的运算

运算符:

加法 +

减法 –

乘法 \ *

除法 /

取余 (取模)%

Linux中Shell脚本

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/32455.html

(0)
上一篇 2023-11-24 13:00
下一篇 2023-11-25 14:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信