Linux shell脚本笔记
Shell可以被称作是脚本语言,因为它本身是不需要编译的,而是通过解释器解释之后再编译执行,和传统语言相比多了解释的过程所以效率会略差于传统的直接编译的语言。
这是shell脚本简单明了的语法,给很多码农尤其是运维还是带来不少好处,尤其是和Python的结合,在大数据方面可谓是一骑绝尘。
10.1 初识shell
shell看做是一种语言名称,其具体的语法则遵循bash的规定
10.2 文本流和重定向
1> I/O存储位置的查询
重定向:不是命令
程序自身都有I/O
0:标准输入
1:标准输出
2:错误输出
下图暂时当前控制台I/O存储位置
2>文本流的记录
标准输出 ls / 1>success.txt 错误输出 ls /aaa 0>fail.txt 全部输出 ls / /aaa >& all.txt
3>重定向
>重定向覆盖
>>重定向追加
10.3 变量
10.4 引用
10.5 退出状态
10.6 判断状态
command1 && command2
command1 || command2
10.7 表达式
1>算术表达式
let 等价于 $(())
2>条件表达式
test 等价于[]
-eq 表示= -ne表示!= -lt 表示< -le表示<= |
10.8 小技巧:编写用户添加脚本
添加用户;用户密码同用户名;静默运行脚本;避免捕获用户接口;程序自定义输出
直接上代码
#!/bin/bash [ ! $# -eq 1 ] && echo "args error" && exit 2 id $1 >& /dev/null && echo "user:$1 exist~!" && exit 3 ! useradd $1 >& /dev/null && echo "add user error!" && exit 7 echo $1 | passwd --stdin $1 >& /dev/null echo "user:$1 add ok ~!"
思考题,那删除怎么写呢,如有回复则给答案
10.9 流程控制
if
While
For