shell编程规范与变量

本文详细介绍了Shell脚本的基础知识,包括Shell的定义、脚本的应用场景、Linux中的常见Shell类型。接着讲解了如何编写Shell脚本,包括脚本构成、执行方式。此外,还介绍了管道符号和重定向操作。最后,深入探讨了Shell变量,如自定义变量、环境变量、只读变量和位置变量的使用和特点。
摘要由CSDN通过智能技术生成


前言


一、Shell脚本概述

1.1.Shell是什么?

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

  • Bash(/bin/bash)是目前大多数 Linux 版本采用的默认 Shell。
  • 不同shell的内部指令、运行环境会有区别。

1.2.Shell脚本的概念

  • 将要执行的命令按顺序保存到一个文本文件
  • 需要给该文件可执行权限
  • 可结合各种Shell控制语句以完成更复杂的操作

1.3.Shell脚本应用场景

  • 重复性操作
  • 交互性任务
  • 批量事务处理
  • 服务运行状态监控
  • 定时任务执行
  • …(等)

1.4.Linux中有哪些Shell?

 我们可以使用 cat /etc/shells 命令查看系统安装的shell脚本解释器。
在这里插入图片描述
 这些shell都是依据 Linux 发行者的不同所创造出的不同版本:

  • bash:基准于GNU的框架下发展出的Shell。
  • csh:语法有点类似于c语言的shell。
  • tcsh:整合了csh,提供更多的功能。
  • sh:已经被bash所替换。
  • nologin:这个shell可以让用户无法登录主机。

bash (/bin/bash)是目前大多数Linux版本采用的默认Shell。

为什么系统上合法的shell要写入/etc/shells这个文件呢?

 因为系统某些服务在运行过程中,会去检查用户能够使用的Shell,而这些shell的查询就是 借由/etc/shells 这个文件。

用户什么时候可以取得shell来工作?用户默认会去的哪一个shell?

 当用户登陆的时候,系统会给我一个shell让我来用,而这个登录取得的shell记录在/etc/passwd这个文件内。

二、Shell脚本的编写

2.1.Shell脚本的构成

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

2.2.编写脚本代码

  • 使用vim文本编辑器
  • 编写时,每条linux命令按照执行顺序依次编写(每条命令独占一行)

示例:

vim /root/first.sh        #编辑一个脚本文件,一般脚本文件都以“.sh”结尾,方便辨识
#!/bin/bash               #脚本声明
#This is my first Shell-Script.    #注释信息
echo "当前的目录位置位于:"           #可执行语句
pwd

 新建一个shell脚本文件
在这里插入图片描述

2.3.执行Shell脚本

方法一:直接访问文件,需要可执行权限(x)

刚创建一个文件后,默认是没有可执行权限的在这里插入图片描述

执行 chmod +x shell文件路径,赋予执行权限

chmod +x /root/first.sh

指定绝对路径:/root/first.sh
指定相对路径:./first.sh

在这里插入图片描述
在这里插入图片描述

方法二:指定Shell来解释脚本,不要求文件必须有 x 可执行权限。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值