shell是解释型的编程语言
解释型脚本文件的执行过程:
当执行一个解释型的脚本文件是时,脚本文件会被提交到内核。内核看到第一行定格写的“#!”时,就会调用“#!”后面跟的解释器,启动一个解释器进程,并把该文件的后续内
容交给解释器翻译给CPU执行。脚本后续内容执行完毕后,解释进程将会随之结束。
shell脚本书写规范:
第一行:#!/bin/bash 必须定格书写
#author: movekj 脚本作者
#date: 书写日期
#version:0.0.1 版本号
#description: bash scription 脚本功能描述
shell脚本编程是一门过程式的编程语言,有以下三种执行流程:
顺序执行:从文件的第一条语句开始一条一条向后执行
选择执行:根据给出的条件,选择性的执行
循环执行: 重复的执行循环体中的语句
变量:
本地变量:只对当期进程有效
var_Name=value
环境变量:对当前进程及其自进程有效
export var_Name=value
局部变量:在代码块中有效(通常用于函数中)
local var_Name=value
位置变量:$0、$1、$2...$n
特殊变量:
$#:表示脚本参数的个数
$?:表示上一条命令的执行状态(0表示执行成功,非零表示执行失败)
$*:表示脚本的参数列表
$@:表示脚本的参数列表
变量赋值:
var_Name=value
declare [option] var_Name=value
shell脚本中常见的符合及其意义:
`COMMAND`(反撇号):表示命令引用,引用命令的执行结果
" "(双引号):弱引用,其中有$加变量名时,会做变量替换
‘ ‘(单引号):强引用,其中有$加变量名时,不会做变量替换
循环语句:(有以下常见的三种)
for循环:遍历列表,遍历到列表最后一个参数时,退出循环。
for var_Name in LIST
do
循环体
done
LIST的生成方式:
1、seq命令
seq [star] [步进] [end]
2、{..}
3、直接键入参数以一个或多个空格隔开
while循环:当条件不满足condition时,退出循环。
while condition
do
循环体
done
until循环:当条件满足condition时,退出循环。
while condition
do
循环体
done
选择语句:
if语句:
单分支:
if COMMAND
then
选择分支
fi
双分支:
if COMMAND
then
选择分支1
else
选择分支2
fi
多分支:
if COMMAND
then
选择分支1
elif COMMAND
then
选择分支2
elif COMMAND
then
选择分支3
...
else
选择分支n
fi
case语句:
case var_Name in
)
;;
)
;;
)
;;
esac
shell条件测试
字符比较:
>、<、>=、<=、==、!=
-z:测试变量是否为空
-n:测试变量是否不空
数字比较:
-gt、-lt、-ge、-le、-eq、-ne
文件测试:
算数运算
运算符合:+、-、*、**(乘方)、/、%(取模/取余)
let var_Name=EXPR
let I++ --> let I=$I+1
let I+=2 --> let I=$I+2
let I-=2 --> let I=$I-2
其它符合以此类推
expr AGR1 + AGR2 ...
$[EXPR]
$((EXPR))
expr AGR1 + AGR2 ...
本文出自 “木屋科技” 博客,请务必保留此出处http://starli.blog.51cto.com/8813574/1658097
原文地址:http://starli.blog.51cto.com/8813574/1658097