短路逻辑运算:
与:一个为假结果一定为假
或:一个为真结果一定为真
非:
抑或:
1:真 0:假
变量类型:
字符
数值
--- 整形
--- 浮点型
shell:弱类型编程语言
强:变量在使用前必须事先声明,甚至还需要初始化;
--- NULL:空
弱:变量随用随声明:甚至不区分类型;
变量赋值:VAR_NAME=VALUE
bash: 变量类型:
--- 环境变量
--- 本地变量(局部变量)
--- 位置变量
--- 特殊变量(bash内置)
环境变量:作用域为当前shell进程及子进程
export VARNAME = VALUE ''导出''
/VARNAME = VALUE
/export VARNAME
脚本在进行时会启动一个子shell进程;命令行中启动的脚本会继承当前shell环境变量。系统自动执行的脚本(非命令行启动)就需要自我定义各种环境变量。
本地变量:
VARNAME = VALUE:作用域整个bash进程
局部变量:
local VARNAME = VALUE 作用域为当前代码段
---- bash:
位置变量:用于引用脚本参数
$1, $2, ...
特殊变量:
用于保存特殊数据:$?: 用于保存上一个的命令执行状态返回值
程序执行后可能有两类返回值:程序执行结果 / 程序状态返回代码
(0:正确执行 / 1-255:错误执行)
引用变量:${VAR_NAME}
(花括号某些情况可省略)
内部有变量,想完成变量替换使用双引号
撤销变量:unset VARNAME(撤销变量本身)
查看当前shell中的变量:
set
查看当前shell中的环境变量:
printenv
env
export
###附加变量内容
animals=pig
animals=$animals:goat
echo $animals
pig:goat
nano first.sh
cat /etc/fstab
ls /var
bash first.sh
!shell默认所有变量为字符串,无法对变量进行逻辑运算
脚本即为命令的堆砌,结合命令流程控制机制实现的语言程序。
shebang: magic number 魔数 #! /bin/bash
输出重定向:
>
覆盖重定向
>>
追加重定向
2>
错误重定向
2>>
错误追加重定向
&>
同时重定向
dev/null
软件模拟设备, bit bucket,数据黑洞
- 添加5个用户,user1-user5:
- 每个用户的密码同用户名,且要求,添加密码完成后不显示passwd命令的执行结果,添加完成后显示某某已经成功添加:
- 写一个脚本:
3.1使用一个变量,保存一个用户名
3.2删除此变量中的用户,且一并删除其家目录
3.3显示用户‘删除完成’的信息
ps: &>
可以将错误信息或者普通信息都重定向输出
网友评论