shell脚本

目录

一、shell脚本概述

1.1shell的作用

1.2.Shell脚本应用场景

1.3.Shell脚本概念

1.4.Shell脚本构成

1.5.脚本执行逻辑

1.6.执行方式

1.7.脚本错误调试

1.8.命令echo

二、重定向

2.1标准输入与标准输出

2.2.重定向操作

2.3.重定向输入与输出修改密码


一、shell脚本概述

1.1shell的作用

1.2.Shell脚本应用场景

1.3.Shell脚本概念

1.4.Shell脚本构成

1.5.脚本执行逻辑

1.6.执行方式


一、shell脚本概述

1.1shell的作用

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

通过/etc/shells 文件可以了解当前系统所支持的 Shell 脚本种类。

1.2.Shell脚本应用场景

重复性操作

交互性任务

批量事务处理

服务运行状态监控

定时任务执行

1.3.Shell脚本概念

将要执行的命令按顺序保存到一个文本文件

给该文件可执行权限

可结合各种Shell控制语句以完成更复杂的操作

1.4.Shell脚本构成

脚本申明(解释器):第一行开头“#!/bin/bash”,表示此行以下的代码语句是通过/bin/bash程序来解释执行。#!/bin/bash为默认的解释器,其他类型的解释器如#!/bin/python #!/bin/expect

注释信息:以#开头的语句表示为注释信息

可执行语句:比如echo命令用于输出“ ”之间的字符串


 

1.5.脚本执行逻辑

顺序执行:程序按从上到下顺序执行

选择执行:程序执行过程中,根据条件的不同,进行选择不同分支继续执行

循环执行:程序执行过程中需要重复执行多次某段语句(已知次数 已知条件 死循环)

1.6.执行方式

1.指定路径去执行文件(需要有执行权限)

2.指定shell解释器去执行(不需要权限)

3.source和 . 执行 (不需要权限)

使用前两种方式执行脚本,会开启 子bash去执行脚本。

使用source和 . 执行脚本会影响当前的bash环境。

1.7.脚本错误调试

脚本错误种类

命令错误:命令出错不会影响接下来的命令继续

语法错误:会影响接下来的命令继续

逻辑错误:只能自己去筛查代码的正确

检查脚本错误

检查语法错误:bash -n 脚本名称 (不在当前目录下加绝对路径)    

检查逻辑错误:bash -x 脚本名称 (不在当前目录下加绝对路径)    

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

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

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

set -e 写在脚本前面,一旦报错,立刻停止

set -u 写在脚本前面,当变量不存在是,立刻停止

1.8.命令echo

选项 作用
-n 不追加换行
-e \b    退格
\c    抑制更多的输出
\n    换行

\t    横向制表符

\v    纵向制表符

二、重定向

2.1标准输入与标准输出

交互式硬件设备:

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

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

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

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

2.2.重定向操作

类型 操作符 用途
重定向输入 < 从指定的文件读取数据,而不是从键盘输入
重定向输出 > 将输出结果保存到指定的文件(覆盖原有内容)
重定向输出 >> 将输出结果换行添加在文件尾部
重定向错误输出 2> 将错误信息保存到指定的文件(覆盖原有内容)
重定向错误输出 2>> 将错误信息追加到指定的文件中
混合输出 &> 将标准输出、标准错误的内容保存到同一个文件中

2.3.重定向输入与输出修改密码

相关推荐

  1. Shell脚本

    2024-01-22 18:26:00       31 阅读
  2. shell脚本

    2024-01-22 18:26:00       8 阅读
  3. shell脚本

    2024-01-22 18:26:00       4 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-22 18:26:00       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-22 18:26:00       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-22 18:26:00       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-22 18:26:00       20 阅读

热门阅读

  1. 如何用GPT快速写完论文?

    2024-01-22 18:26:00       35 阅读
  2. 如何利用chatgpt提高工作效率?

    2024-01-22 18:26:00       26 阅读
  3. Prohibition of full table deletion 解决方法

    2024-01-22 18:26:00       37 阅读
  4. 高防CDN与dns结合有哪些优势

    2024-01-22 18:26:00       35 阅读
  5. 【知识---c++中assert的使用及方法】

    2024-01-22 18:26:00       34 阅读
  6. ARM的一些基础知识

    2024-01-22 18:26:00       38 阅读
  7. arm寻址方式

    2024-01-22 18:26:00       36 阅读
  8. 每日OJ题_算法_二分查找①_力扣704. 二分查找

    2024-01-22 18:26:00       39 阅读
  9. udp丢包处理方法

    2024-01-22 18:26:00       37 阅读
  10. 设计模式-状态模式

    2024-01-22 18:26:00       34 阅读
  11. vue生命周期

    2024-01-22 18:26:00       40 阅读
  12. 正则表达式大全(汇总)

    2024-01-22 18:26:00       32 阅读