一:shell
1.shell:弱类型编程语言
强:变量在使用前必须事先声明,甚至还需初始化
弱:变量在用时声明,甚至不区分类型
2.bash变量类型:
(1)本地变量
varname = value:作用域为整个bash进程
(2)局部变量
local varname = value:作用域为当前代码段
(3)环境变量
export varname = value:作用域为当前shell进程及其子进程
(4)位置变量
$1,$2,...,shift(轮替)
(5)特殊变量
$?:上一个命令的执行状态返回值
程序执行可能有两类返回值:
<1>程序执行结果
<2>程序状态返回代码(0~255)
0:正确执行
1-255:错误执行
3.撤销变量:unset,varname
4.查看当前shell中变量:set
5.查看当前shell中的环境变量:printenv,env,export
6.取出变量的值(引用变量):${username}
二:shell进程
脚本在执行时会启动一个子shell进程
(1)命令行中启动的脚本会继承当前shell环境变量
(2)系统自动执行的脚本就需要自我定义需要各种环境变量
脚本:命令的堆砌
首行为#!/bin/bash:执行脚本程序的路径
三:条件判断的表达式
1.表达式
[表达式],[[表达式]],test 表达式
整数比较:
-eq:比较两个整数是否相等。如:$A -eq $B
-ne:测试两个整数是否不等
-gt:测试一个数是否大于另一个数
-lt:测试一个数是否小于另一个数
-ge:大于等于
-le:小于等于
2.命令间的逻辑关系
逻辑与:&&
逻辑或:||
非:!
例如:如果用户不存在,添加并且给密码,否则,显示其已存在
! id user1 && useradd user1 && echo "user1" | passwd --stdin user1 || echo "user1 exit."
四:条件判断结构
(1)单分支if语句
if 判断条件; then
语句1
......
fi
(2)双分支if语句
if 判断条件; then
语句1
......
else
......
fi
五:shell中如何进行算术运算
(1)let 算术运算表达式
A=3 B=6 let C=$A+$B
(2)$[算术运算表达式]
C=$[$A+$B]