shell脚本

Shell脚本编程

一、变量
bash的变量类型:
(1)环境变量 : export 变量名 = 值,作用域:当前的shell和其子shell。
(2)本地变量:var_name=值,作用域:整个bash进程,只属于某一个shell的变量。
(3)局部变量local var_name =值,作用域:当前代码段。
(4)位置变量:用于 脚本执行的参数,$1 表示第一个参数,以此类推,$0:表示脚本本身的文件名。
(5)特殊变量:bash内置的用来保存某些特殊数据的变量。(也叫系统变量)
$? :上一个命令的执行状态返回值。
$# 传递到脚本的参数个数
$* 传递到脚本的参数,与位置变量不同,此选项参数可超过9个
$$ 脚本运行时当前进程的ID号(常用)
$! 后台运行的(&)最后一个进程的ID号

$ @ 与 @与 @#相同,使用时加引号,并在引号中返回参数个数
$- 上一个命令的最后一个参数
$? 最后命令的退出状态,0表示没有错误,其他任何值表明有错误。

程序有两类返回值:
1.执行结果 :标准,错误 :标准输出,错误输出
2.执行状态,$? : 0:表示正确,1-255:错误

输出重定向:

(1)>:覆盖重定向
(2)>>: 追加重定向
(3)2> 错误覆盖重定向
(4)2>>错误追加重定向
(5)&> 全部重定向
(6)&>> 全部信息追加重定向
注意:脚本在执行时都会启动一个子shell进程:
命令行中启动的脚本会继承当前shell环境变量。
系统自动启动脚本(非命令行启动):则需要自我定义环境变量。
查看shell中的环境变量
printenv
env
export
引用变量:${变量名},一般可以省略{}
单引号:强引用,不作变量替换,相当于字符串,不是本身意义
双引号:弱引用,做变量替换,具有本身的意义
反引号:``命令替换

二、脚本

Shell 中的算术运算
1、 let 算术运算表达式
let C=$A + $B

2、$[算术表达式]
C = [ [ [$A + $B]

3、$((算术表达式))

C= ( ( (( (($A + $B))
4、 expr 算术表达式 ,注意:表达式中各操作数及运算符之间要有空格。而且要使用命令引用
C=expr $A + $B

条件判断:
条件表达式:
1、 [ expression ]
2、 test expression
3、 任何一个命令都可以作为条件表达式
整数比较:
-eq (等于): 比如:[ $A –eq $B ]
-ne (不等), -gt (大于),-lt(小于),-ge(大于等于),-le(小于等于)
命令的逻辑关系:
在linux 中 命令执行状态:0 为真,其他为假
逻辑与: &&
第一个条件为假时,第二条件不用再判断,最终结果已经有;
第一个条件为真时,第二条件必须得判断;
逻辑或: ||
逻辑非: !
命令执行的状态 的逻辑关系
If…else
If 条件 ;then
语句
elif 条件 ; then
语句
else
语句
fi
shell脚本_第1张图片
注:中括号的两边必须有空格!!!
while循环
while 命令;do 命令;done
for循环
for ((exp1;exp2;exp3));do 命令;done
执行脚本文件方法
(1) 在当前bash中执行脚本
①source 文件
②. 文件
(2) 不在当前bash中执行脚本
① bash 文件
② ./ 文件 注:该文件必须为可执行文件,语法:chmod +x filename

你可能感兴趣的:(shell脚本)