我的shell脚本编程
2017-05-05 11:28
148 查看
对于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): 某些变量的引用:$@,$*
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层的本次循环,直接进入下一轮条件判断,若符合循环进入条件,则开启下一轮循环;
break:
break
提前结束第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]
过程式编程语言、脚本类型语言、解释型语言。
在写脚本的时候总是会遵循三种执行结构:顺序执行结构、选择执行结构、循环执行结构。
顺序执行即:以从左到右,从上到下顺序执行所有的语句(命令)
选择执行结构:依照给定条件的逻辑判断结果或者依照可选的取值范围,进而选择某个分支中的语句来执行;
有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): 某些变量的引用:$@,$*
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层的本次循环,直接进入下一轮条件判断,若符合循环进入条件,则开启下一轮循环;
break:
break
提前结束第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]
相关文章推荐
- Linux下Shell脚本编程简介
- 脚本文件(shell perl python)编程的总结的框架。
- Shell脚本编程基础
- Shell脚本编程的常识
- Linux脚本(shell)编程(二) 基本语法
- LPI 102 考试准备,主题 109: Shell、脚本、编程和编译
- Linux脚本(shell)编程(六) 循环
- Linux命令行和Shell脚本编程
- shell下打印菱形(一起熟悉shell脚本编程)
- Linux脚本(shell)编程(四) 判断条件
- Shell脚本编程-变量
- Linux下Shell脚本编程简介
- 一个比较好的shell脚本编程入门文章
- Shell脚本编程基础
- Linux Bash Shell学习(七):shell编程基础——运行Shell脚本、function
- 介绍一个不错的shell脚本编程学习网站给大家
- Shell脚本编程-流控制(二)
- 顶嵌学员学习笔记:Shell脚本编程总结
- linux脚本(shell)编程
- Linux脚本(shell)编程(五) if 条件判断