您的位置:首页 > 运维架构 > Shell

shell脚本笔记总结一

2017-08-27 23:07 204 查看

1.shell脚本的执行方法

当shell脚本以非交互的方式运行时,它会先查找环境变量ENV,该变量指定了一个环境文件(通常是.bashrc),然后从该环境变量文件开始执行,当读取了ENV文件后,SHELL才开始执行shell脚本中的内容。

shell脚本的执行通常可以采用以下三种方法:

bash script-name 或者 sh script-name

path/script-name 或者 ./script-name(当前路径下执行)

source script-name 或 . script-name(注意符号“.”与 script-name之间有空格)

第一种方法是脚本文件本身没有可执行权限时,通常使用的方法;

第二种方法需要先将脚本文件的权限改为可执行,然后通过脚本路径就可以直接执行;

第三中方法是在当前shell环境中直接执行,而不是新创建一个子shell,当我们需要在一个脚本中使用另一个脚本中的变量的时候就使用第三种方法

2.bash的变量类型

根据变量的生效范围等标准可分为:

本地变量:生效范围为当前shell进程,对当前shell之外的其他shell进程包括当前shell 的子shell 进程均无效;

环境变量:生效范围为当前shell进程及子进程;

局部变量:生效范围为当前shell进程中某代码片段(通常指函数);

位置变量:$1, $2, …来表示,用于让脚本在脚本代码 中调用通过命令行传递给它的参数

特殊变量:



本地变量

变量赋值:name=‘value’

可以使用引用value:

(1) 可以是直接字串; name=“root”

(2) 变量引用:name=”$USER”

(3) 命令引用:name=
COMMAND
name=$(COMMAND)

变量引用:${name} $name

“”:弱引用,其中的变量引用会被替换为变量值

”:强引用,其中的变量引用不会被替换为变量值,而保 持原字符串

显示已定义的所有变量:set

删除变量:unset name

环境变量

变量声明、赋值:

export name=VALUE

declare -x name=VALUE

变量引用:name,{name}

显示所有环境变量: env printenv export declare -x

删除变量: unset name

条件选择if语句

单分支

if 判断条件;then

条件为真的分支

fi

双分支

if 判断条件; then

条件为真的分支代码

else

条件为假的分支代码

fi

多分支

if 判断条件1; then

条件为真的分支代码

elif 判断条件2; then

条件为真的分支代码

elif 判断条件3; then

条件为真的分支代码

else

以上条件都为假的分支代码

fi

条件判断:case语句

case 变量引用 in

PAT1)

分支1

;;

PAT2)

分支2

;;



*)

默认分支

;;

esac

for循环

for 变量名 in 列表;do

循环体

done

执行机制: 依次将列表中的元素赋值给“变量名”; 每次赋值后即执 行一次循环体; 直到列表中的元素耗尽,循环结束

while循环

while CONDITION; do

循环体

done

CONDITION:循环控制条件;进入循环之前,先做一次判 断;每一次循环之后会再次做判断;条件为“true”,则执行 一次循环;直到条件测试状态为“false”终止循环

进入条件:CONDITION为true

出条件:CONDITION为false

until循环

until CONDITION; do

循环体

done

进入条件: CONDITION 为false

退出条件: CONDITION 为true

循环控制语句continue

用于循环体中

continue
:提前结束第N层的本轮循环,而直接进入下一 轮判断;最内层为第1层

while CONDTIITON1; do

CMD1



if CONDITION2; then

continue

fi

CMDN



done

脚本练习题

1.求0到50以内偶数的和。



2.打印九九乘法表



3.打印国际象棋盘





4.打印等腰三角形



5.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  脚本