Shell脚本1

一、shell脚本基础

1.1shell的作用

(1)作用

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

(2)linux中常见的shell

  • bash:基于gun的框架下发展的shell
  • csh:类似c语言的shell
  • tcsh:整合了csh提供了更多功能
  • sh:已经被bash替换
  • nologin:让用户无法登录
  • bash(/bin/bash):是目前大多数Linux 版本采用的默认shell

1.2什么是shell脚本及其架构

(1)什么是shell脚本

  • 就是将命令按顺序一一列出,最后自动执行
  • 执行需要权限,也可以直接使用绝对路径
  • 脚本其实不复杂,通用脚本环境改变后依然可以使用的脚本

(2)shell脚本的构成

  • 脚本申明(解释器):第一行开头“#!/bin/bash”,表示此行以下的代码语句是通过/bin/bash程序来解释执行。#!/bin/bash为默认的解释器还有其他类型的解释器,#!/bin/python,#!/bin/expect
  • 注释信息:以#开头的语句表示为注释信息
  • 可执行语句:比如echo命令用于输出“ ”之间的字符串

1.3脚本执行逻辑及执行方式

(1)脚本执行逻辑

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

(2)执行方式

  • 指定路径去执行文件(需要有执行权限)
  • 指定解释器去执行(不需要权限)

1.4脚本错误调试

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

  • 语法错误,会导致后续的命令不继续执行,可以用bash -n 检查错误,提示的出错行数不一定是准确的
  • 命令错误,默认后续的命令还会继续执行,用bash -n 无法检查出来 ,可以使用 bash -x 进行观察
  • 逻辑错误:只能使用 bash -x 进行

二、重定向与管道符

2.1重定向

(1)交互式硬件设备
标准输入:从该设备接收用户输入的数据
标准输出:通过该设备向用户输出数据
标准错误:通过该设备报告执行出错信息


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

2.2管道符

管道符(”|“):将左侧的命令输出结果,作为右侧命令的输入(处理对象)可以叠加使用