00 基本操作
•1,花括号 mkdir -p sdfsdf/{a,b,c}sdfsdf•2,波浪线 cd ~god•3,变量&参数 $ $$ ${}(.....)•4,命令替换 ls -l `echo $path`•5,算术扩展 num=$((3+4))•6,word拆分,$IFS•7,路径 *(零到多个任意字符)?•8,引用删除 echo "hello"•*,重定向 >
01 程序自身都有I/O
•0:标准输入•1:标准输出•2:错误输出
–控制程序I/O位置
–一切皆文件
•/proc/$$/fd
–程序是否处理I/O?
–绑定顺序:从左到右
02 特殊:
–$–$*:参数列表,双引号引用为一个字符串–$@:参数列表,双引号引用为单独的字符串–$$:当前shell的PID:接收者•$BASHPID:真实
03 管道
–$?:上一个命令退出状态•0:成功•other:失败
04 环境变量
环境变量:env,printenv,export
export定义变量
导出到子shell
fork() Copy On Write O(1)
适用于函数
unset:取消变量
set:查看shell的变量
05 退出状态
`–echo $?`
06 逻辑判断
–command1 && command2–command1 || command2
07 算术表达式
–let 算术运算表达式•let C=$A+$B–$[算术表达式]•C =$[$A+$B]–$((算术表达式))•C=$(($A+$B))–expr 算术表达式 •注意:表达式中各操作数及运算符之间要有空格。而且要使用命令引用•C=`expr $A + $B`•help let
08 条件表达式
–[ expression ]–test expression–[[ expression ]]
练习题:
- 添加用户
- 用户密码同用户名
- 静默运行脚本
- 避免捕获用户接口
- 程序自定义输出