为了实现自动化运维,对服务器实现自动化控制,我们需要学习shell脚本编程。
内核是操作系统的核心,它负责管理内存、调度任务和驱动硬件等基本功能。内核的外面一层叫做shell(外壳),shell可以保护内核免受伤害。shell的外面就是各种各样的应用程序。应用程序在执行的时候通过shell翻译成内核可以理解的某一种语言。可见shell是非常重要的 。
每一种操作系统都有自己的shell,如DOS:command.com;windows:explorer.exe。Linux有多种shell。
什么是Shell脚本
Shell脚本(英语:Shell script),又称Shell命令稿、程序化脚本,是一种电脑程序与文本文件,内容由一连串的shell命令组成,经由Unix Shell直译其内容后运作。被当成是一种脚本语言来设计,其运作方式与直译语言相当,由Unix shell扮演命令行解释器的角色,在读取shell脚本之后,依序运行其中的shell命令,之后输出结果。利用shell脚本可以进行系统管理,文件操作等。
shell和shell脚本的概念
shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson的sh是第一种Unix Shell,Windows Explorer是一个典型的图形界面Shell。
shell脚本(shell script),是一种为shell编写的脚本程序。业界所说的shell通常都是指shell脚本,但读者朋友要知道,shell和shell script是两个不同的概念。由于习惯的原因,简洁起见,本文出现的“shell编程”都是指shell脚本编程,不是指开发shell自身(如Windows Explorer扩展开发)。
环境
shell编程跟java、php编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。
OS
当前主流的操作系统都支持shell编程,本文档所述的shell编程是指Linux下的shell,讲的基本都是POSIX标准下的功能,所以,也适用于Unix及BSD(如Mac OS)。
Linux
Linux默认安装就带了shell解释器。
Mac OS
Mac OS不仅带了sh、bash这两个最基础的解释器,还内置了ksh、csh、zsh等不常用的解释器。
Windows上的模拟器
windows出厂时没有内置shell解释器,需要自行安装,为了同时能用grep, awk, curl等工具,最好装一个cygwin或者mingw来模拟linux环境。
脚本解释器
sh
即Bourne shell,POSIX(Portable Operating System Interface)标准的shell解释器,它的二进制文件路径通常是/bin/sh,由Bell Labs开发。
bash
Bash是Bourne shell的替代品,属GNU Project,二进制文件路径通常是/bin/bash。业界通常混用bash、sh、和shell,比如你会经常在招聘运维工程师的文案中见到:熟悉Linux Bash编程,精通Shell编程。
在CentOS里,/bin/sh是一个指向/bin/bash的符号链接:
循环
1. for循环
①for 变量 in { };do
循环体
done
②for 变量 in {变量值};do
循环体
done
③for 变量 in ${seq 变量1变量1变量2};do
循环体
done
④for 变量 in 变量值;do
循环体
done
例1:批量创建帐号
# ABC=user10
# echo ${ABC##*[[:alpha:]]}(从左边开始截,截取到最后一个字母,然后把左边的丢掉,得到10)
# echo ${ABC%%[0-9]*}(从右边开始截,截取到最后一个数字,然后把右边的丢掉,得到user)
2. while循环
①while [ 判断式 ];do
循环体
done
②while read 变量;do
循环体
done <文件
③until [ 判断式 ];do
循环体
done
原文:https://www.cnblogs.com/pengsh/p/11892084.html