Linux shell脚本详解及实战(一)——shell简介、shell变量及脚本规范
今天继续给大家介绍Linux基础知识,本文主要内容是Linux的shell脚本。
一、shell简介
shell是用户与Linux系统之间沟通的桥梁,用户通过shell给Linux下达命令,控制系统,同时系统也可以通过shell给用户反馈,如命令执行结果等。shell在本质上是Linux系统给用户提供的接口的集合。Linux shell的种类有很多,常见的shell如下:
1、Bourne shell
UNIX最初使用的shell。
2、Bourne again shell
Linux对于bourne shell的扩展,与bourne shell兼容,但是增加了一些新的特性。我们当前使用(CentOS7)的shell环境就是这个shell,该shell也是相当多的Linux操作系统使用的shell环境。
3、C shell
4、 K shell
5、shell for root
即Linux下/sbin/sh,root用户独有的shell执行环境。
shell除了可以执行命令以外,还可以将shell命令写成一个文件,该文件使用编程的方式实现某一特定的功能。如果我们把该文件赋予执行权限,则该文件就可以称为shell脚本。在生产环境中,运维工程师经常需要写一些shell脚本以帮助更好的执行命令。
二、shell脚本编写格式规范
为了使得shell脚本的编写规范、易读,我们在编写shell脚本的时候需要遵循一些规范,这些规范,有些是shell强制要求的,有些确实业内约定俗成使用的,凡是遵循这些规范写出的脚本,可读性较好,同时也有助于其他人的维护。
shell脚本规范如下:
1、脚本名称规范
shell脚本名称一般使用大写字母、小写字母或数字,不能使用特殊符号、空格或纯数字命名,脚本最后以.sh为后缀名。
2、变量使用规范
shell脚本中变量应该使用大写字母、下划线或者数字,但是不能以下划线或者数字开头。
3、脚本格式规范
shell脚本的第一行,应写明shell脚本的执行环境,如#!/bin/bash、#!/usr/bin/env python等。紧跟着的几行应该注明脚本的编写时间、编写者并简要说明脚本的作用。
三、shell脚本变量
shell脚本中变量分为三种,分别是系统变量、环境变量和用户变量,系统变量主要用于接收传入脚本的参数和查看命令执行的状态,环境变量是在脚本运行时与环境相关的变量,而用户变量则是用户自定义的变量。
shell脚本中常见的系统变量如下:
$0——表示脚本的名称
$N——N为正整数,表示传入脚本的第N个参数。
$*——表示传入脚本的所有参数,该变量是一个数组
$#——表示当前脚本的参数个数
$?——表示上一个命令执行的结果
shell脚本中常见的环境变量如下:
HOME——表示运行该脚本用户的家目录
PATH——表示该脚本中shell命令可能存在的目录
HSELL——表示脚本的SHELL类型
USER——表示运行该脚本的用户
PWD——表示该脚本在执行时的当前目录
HOSTNAME——表示该脚本在执行时的主机名
在定义shell脚本变量时,直接键入变量名=变量值即可,注意等号左右两边不要存在括号,当要调用脚本变量时,需要在变量名前面加上$符号,最好使用大括号将变量名括起来,这样可以防止后面一些内容对该变量名的干扰。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
Linux shell脚本详解及实战(一)——shell简介、shell变量及脚本规范相关推荐
- shell脚本详解(六)——数组简介和排序算法
shell脚本详解(六)--数组简介和排序算法 一.数组 1.数组的定义方法 ①.方式一: ②.方式二: ③.方式三: ④.方式四: 2.数组包括的数据类型 3.获取数组长度 4.获取数据列表 5.读 ...
- UEFI Shell命令详解,自写一个UEFI Shell命令
首先,我们从BIOS进入Shell,输入help命令查看帮助信息 Shell:helpacpiview - Display ACPI Table information. alias - Displa ...
- Linux DNS服务详解——DNS实战配置
今天继续给大家介绍Linux基础知识,本文主要内容是DNS的实战配置. 一.DNS安装与配置文件 如果采用YUM的安装方式,DNS设计到三个包,相关命令如下: yum install -y bind ...
- Linux DNS服务详解——DNS服务搭建细节
前几天,我陆续给大家介绍了DNS服务的相关内容,今天,我给大家补充介绍一下DNS服务中一些小问题. 前文链接: Linux DNS服务详解--DNS基础知识 Linux DNS服务详解--DNS实战配 ...
- java 远程shell脚本_java通过ssh连接服务器执行shell命令详解及实例
java通过ssh连接服务器执行shell命令详解 java通过ssh连接服务器执行shell命令:JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转 ...
- shell脚本详解(十二)——Here Document免交互及Expect自动化交互
shell脚本详解(十二)--Here Document免交互及Expect自动化交互 一.Here Document 免交互 1.格式 2.注意事项 3.免交互方式实现对行数的统计,将要统计的内容置 ...
- linux防火墙ddos,Linux iptables防火墙详解 + 配置抗DDOS***策略实战
Linux iptables防火墙详解 + 配置抗DDOS***策略实战 Linux 内核中很早就实现了网络防火墙功能,在不同的Linux内核版本中,使用了不同的软件实现防火墙功能. 在2.0内核中, ...
- 11. shell当中read详解,read语法选项,read用法示例,脚本示例,while read line详解,掌握原则
shell当中read详解,read语法选项,read用法示例,脚本示例,while read line详解,掌握原则 文章目录 1.1 read详解 1.2 用法示例 1.3 while read ...
- shell脚本详解(一)——初学shell脚本必看哦
shell脚本详解 一.Shell脚本概述 1.1.shell脚本的概念 1.2.shell脚本应用场景 1.3.shell脚本能干什么 1.4. shell的作用--命令翻译器,"翻译官& ...
- shell脚本详解(十一)——awk文本和数据处理编程语言
shell脚本详解(十一)--awk文本和数据处理编程语言 一.awk命令 – 文本和数据进行处理的编程语言 1.工作原理 2.命令格式 3.awk常见的内建变量(可直接使用) 4.按行输出文本 5. ...
最新文章
- java代码操作git_JGit--实现Git命令操作的Java API
- 如何在一个背景图像上,做半透明的图。
- Theme、StylesheetTheme设置ASP.NET的样式与主题
- Python处理多行文本问题--一个简单方法读取多行fasta文件
- mos管电路_【鼎阳硬件智库原创︱电源】 MOS管驱动电路的设计
- ARMV8/ARMV9的执行状态的切换
- 关于如何让cell一直保持选中?
- 入门机器学习,这一步必不可少!
- leetcode讲解--169. Majority Element
- 01-SpringMVC 原理
- java 私有成员方法_Java Reflection 教程(7):类私有成员变量和方法
- Java_Spring MVC_Servlet
- Web Control开发随笔(4):Control与WebControl 的Properity初探
- 我们公司为什么要放弃Lombok?因为它让你的代码处于了“亚健康”状态
- 判断这5个数值是否连续相邻
- python远程文件管理系统_如何在Windows上使用Python访问远程文件系统?
- 王道训练营作业 C++
- 《怪物猎人:世界》鼠标侧键点击无效的解决方法(罗技g402)
- File Systems Unfit as Distributed Storage Backends 开发十年Ceph的经验:文件系统不适合作为分布式存储后端
- 微信小程序连接数据库