我的shell脚本编程

对于shell脚本编程特点来说它是

过程式编程语言、脚本类型语言、解释型语言。

在写脚本的时候总是会遵循三种执行结构:顺序执行结构、选择执行结构、循环执行结构。

顺序执行即:以从左到右,从上到下顺序执行所有的语句(命令)

选择执行结构:依照给定条件的逻辑判断结果或者依照可选的取值范围,进而选择某个分支中的语句来执行;

有if:分支选择标准;逻辑判断的结果;

case:分支选择标准;根据可选的取值;

循环执行结构:对于某特定语句,重复执行0次,1次或多次;

有for:遍历指定的列表

while:根据逻辑判断的结果

until:根据逻辑判断的结果

select:死循环,利用循环机制提供选择列表

----------------------------------------------------------

if结构通常来说有双分支和多分支结构

无非就是在if下又添加了elif  例如

if CONDITION1 ; then

STATEMENT

...

elif CONDITION2 ; then

STATEMENT

...

elif CONDITION3 ; then

STATEMENT

...

...

else

STATEMENT

...

fi

  case 语句使用来 在给出不同的参数时做出不同的结果

case 变量引用 in

模式1)

分支1

;;

摸式2)

分支2

;;

...

*)

默认分支

;;

esac

在这里的模式可有很多种匹配方式

1.普通的文本字符

2.globbing风格的通配符

*:任意长度任意字符

?:任意的单个字符

[]:范围内的任意单个字符

[^]:范围外的任意单个字符

3.| :或

 for 循环有两种格式

1.遍历列表

for VAAR_NAME in LIST ; do

循环体

done

这个列表LIST的可以:

1):直接写出

2): 纯整数列表

seq:输出一个整数列表

seq [FIRST [INCREMENT]] LAST

3) :花括号展开

{FIRST..LAST}

{0..100..3}  显示0-100中能被3整除的数字

4) : 命令的执行结果返回值

5):GLOBBING(通配符)

6): 某些变量的引用:[email protected],$*

2.控制变量的格式

for (( 表达式1; 表达式2; 表达式3 )); do

((循环体))

done

表达式1:为变量赋初始值

表达式2:循环的退出条件

表达式3:变量值的变换规律

while、until循环:

while CONDITION ; do

循环体

done

进入循环的条件:CONDITON一直为真;

退出循环条件:CONDITON为假

-------------------

until CONDITION ; do

循环体

done

进入循环的条件:CONDITON一直为假;

退出循环条件:CONDITON为真

注意:对于while和until两个循环结构来讲,如果要实施变量增量操作,必须手动给出;

例如:利用while和until循环结构,计算100以内所有整数和;

#!/bin/bash

#

declare -i I=1

while [ $I -le 100 ] ; do

let SUM+=$I

let I++

done

对于循环语句 还有一个无限循环的用法

while true ;do

循环体

done

until false ;do

循环体

done

在此类的循环结构中,必须适当的使用continue和break,以保证循环不会一直持续下去;

continue:

continue [n]

提前技术第n层的本次循环,直接进入下一轮条件判断,若符合循环进入条件,则开启下一轮循环;

break:

break [n]

提前结束第n层循环;不再继续后续循环;

还有一个实现遍历功能的while、until循环 用于对文件的每一行读取操作

while read LINES ; do

循环体

done < /PANTH/FROM/SOMEFILE

until ! read LINES ; do

循环体

done < /PATH/FROM/SOMEFILE

select

select循环主要用于创建一个菜单式列表,供用户进行选择;

列表是按照数字顺序排列的,我们只要选择数字即可;

一般来讲,select与case一起使用;

select是一个无限循环结构,因此,必须在循环体中使用break命令以退出循环,或者可以使用exit命令直接终止脚本。

select NAME [in 词语 ... ;] do 命令; done

select NAMl6E [in lsit ] ; do

命令

done

对于和用户交互式的命令read

read命令:

read [-a 数组] [-p 提示符] [-t 超时] [名称 ...]

名称一般为变量名或数组名;如果不写名称,则系统会将read读到的信息保存在REPLY变量中;

注意:在使用read命令的时候,通常会使用-t选项来规定超时时间;一旦使用-t选项定义了超时时间,我们必须在后面判断给定的变量是否为空,如果为空需要为变量提供默认值;

取随机数  8以内的

echo $[$RANDOM%8]


时间: 2024-11-08 16:07:23

我的shell脚本编程的相关文章

shell脚本编程学习笔记(1)

在linux上编程,离不开shell,计划好好看看shell编程,并在这里做些笔记以供有相同兴趣的人分享,主要参考<shell脚本学习指南>. 学习shell脚本编程之前,需要了解脚本编程语言和编译型语言的概念. 一般很多中型.大型的程序是用编译型语言写成的,比如C.C++.Java等.这类程序从源代码编译成目标代码,直接通过计算机执行.编译型语言执行效率比较高,大多运作于底层,处理的是字节.整数.浮点数等机器层级的对象,因此实现一个具体的功能,比如"将一个目录里的所有文件复制到另外

Shell脚本编程知识点总结及范例

 一:关于语言 1)编译性语言 编译型语言多半运作于底层,所处理的是字节.整数.浮点数或其它及其机器层经的对象.处理过程为:源程序--预处理--编译--汇编--链接,编译性语言为静态语言. 2)解释性语言 解释性语言读入程序代码并将其转化为内部的形式加以执行.处理过程:解释性(文本文件)-解释器去读取并执行.解释性语言为动态语言. 二:基础 变量类型 linux脚本中的变量不需要事先声明,而是直接定义使用(这点不同于其他高级编程语言中变量的使用)bash变量类型分为本地变量和环境变量. 本地变量

shell脚本编程——流程控制

shell脚本编程--流程控制 目   录 一. if 二. case 三. for 四. while 五. until 六. 综合应用 一.if 1.语法 (1)单分支 if  判断条件:then fi (2)双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi (3)多分支 if 判断条件1; then 条件为真的分支代码 elif 判断条件2; then 条件为真的分支代码 elif 判断条件3; then 条件为真的分支代码 else 以上条件都为假

shell脚本编程的选择分支结构

选择执行结构: if语句单分支结构:如果条件为真,则执行then后的命令,否则,不做任何操作: if CONDITION :then STATEMENT fi 或 if CONDITION ; then STATEMENT1 STATEMENT2 ... fi 注意:想要执行then后面的STATEMENTS,前提条件是CONDITION部分为真: if语句的双分支结构:如果条件为真,就执行then后面的命令:否则就执行else后面的命令: if CONDITION ; then STATEME

shell脚本编程的一些好习惯

shell脚本编程的一些好习惯 1.命名规则 脚本命名以.sh结尾,名称尽量见名之意.以下是几种可供参考的脚本命名风格.通过以下清新脱俗的风格,读者能够很easy的明白脚本的作用.         clearlog.sh          ClearLog.sh          clearSql.sh         snmp_install.sh         Monitor.sh 2.脚本信息 为脚本加入生动的信息,比如脚本功能的描述,作者,时间,版本信息等.     #!/bin/ba

shell脚本编程之基础篇(二)

shell脚本编程之基础篇(二) ============================================================================== 概述: ============================================================================== 退出状态 ★进程使用退出状态来报告成功或失败 ◆0 代表成功,1-255代表失败 ◆$? 变量保存最近的命令退出状态 (查看:echo $?)

Linux系统shell脚本编程——生产实战案例

Linux系统shell脚本编程--生产实战案例     在日常的生产环境中,可能会遇到需要批量检查内网目前在线的主机IP地址有哪些,还可能需要检查这些在线的主机哪些端口是开放状态,因此依靠手工来检查是可以实现,但比较费时费力,所以需要结合shell脚本来实现批量检查的功能,那么今天就来做个小小的实验. 1.开发脚本前准备 一般大家都知道,测试主机是否在线,常用的命令无非就是ping.nmap,因此,首先找一个地址来测试下ping命令的效果 [[email protected] scripts]

Linux中的shell脚本编程——函数

概述: 本章节将总结while,for循环语句的特殊用法,在不同的场景当中,更能发挥其功能和价值.除此之外,还会介绍一种特殊的循环语句select语句,实现菜单的作用.最重要的是讲解shell脚本编程中函数的用法.这些内容都要熟练掌握. 一.循环语句的特殊用法: 1.while循环的特殊用法(遍历文件的每一行): □语法:while read line; do 循环体 done < /PATH/FROM/SOMEFILE □意义:依次读取/PATH/FROM/SOMEFILE文件中的每一行,且将

Linux 的shell脚本编程

shell脚本编程 程序:指令+数据 程序编辑风格:             过程式:以指令为中心,数据服务于指令             对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 计算机:运行二进制指令 编程语言: 低级:汇编语言 高级:编译:高级语言-->编译器-->目标代码 java,c#,c,c++ 解释:高级语言-->解释器-->机器代码 shell,per,python 编程逻辑处理方式:           顺序执行      

Shell脚本编程30分钟入门

什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_tut for ((i=0; i<10; i++)); do touch test_$i.txt done 示例解释 第1行:指定脚本解释器,这里是用/bin/sh做解释器的 第2行:切换到当前用户的home目录 第3行:创建一个目录shell_tut 第4行:切换到shell_tut目录 第5行:循环条件,一共循环10次 第6行:创建一个test_1…10.txt文件 第7