学习 shell 的价值:
1.Linux 服务器的基本操作和管理(都需要通过shell完成)
3.使用 shell 编写 TCE、SCM、Docker 脚本,完成服务编译和部署
终端
获取用户输入、展示运算结果的硬件设备
......
shell的发展历史
Ken Thompson(来自贝尔实验室)在1971年为UNIX
开发了第一个shell,称为V6 shell ->
Stephen Bourne 在贝尔实验室为V7 UNIX 所开发的
Bourne shell, 即sh ->
开源组织 GNU 为了取代 Bourne shell 开发的
Bourne-Again shell, 即 Bash
shell的语法
类型:
自定义变量
环境变量
系统环境变量
变量的赋值等号两侧不可以有空格
# 变量名=变量值(等号左右不能有空格)
page_size=1
page_num=2
# 将命令复制给变量
1s=1s
# 将命令结果赋值给变量
file list=$(ls -a)
# 默认字符串,不会进行 +运算
total=page_size*page_num
# 声明变量为整型
let total=page size*page_num
declare -i total=page_size*page_num
# 导出环境变量
export total
declare -x total
declare [+/-] 选项 变量
类型:
算数运算符、
逻辑运算符、
比较运算符、
引号、
圆括号、
命令连接、
后台运行。
作用:
常规运算;
部分引用, 仅仅 $\ 保留作用;
完全引用,原样输出;
执行命令;
算数运算;
执行命令;
cmd1 执行完且返回码非O,则继续执
行cmd2;
cmd1 执行完且返回码为0,则继续执
行cmd2;
cmd1、cmd2串行执行;
让命令在后台运行,可与nohup一起使
用;
重定向:......
函数:shell自上而下执行,函数必须在使用前定义
函数获取变量和shell script类似,0代表函数名,后续参数通过0代表函数名, 后续参数通过 0代表函数名,后续参数通过1、2...获取函数内return仅仅表示函数执行状态,不代表函数执行结果返回结果一般使用echo、printf,在外面使用2 ...获取
函数内return 仅仅表示函数执行状态,不代表函数执行结果
返回结果一般使用echo、printf,在外面使用2...获取函数内return仅仅表示函数执行状态,不代表函数执行结果返回结果一般使用echo、printf,在外面使用()、获取结果
如果没有return,函数状态是上一条命令的执行状态,存储在$?中