Shell
处理来自终端模拟器的输入,解释执行之后输出结果给终端
Bash
shell的一种实现
变量
- 自定义变量,作用域为当前shell;定义变量时,变量名不加美元符号($):your_name="lihua",变量名和等号之间不能有空格 使用变量 使用一个定义过的变量,只要在变量名前面加美元符号即可
your_name="qinjx"
echo$your_nameecho ${your_name}
变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界
- 环境变量,作用域为当前shell和其子shell 定义方式:export,declare -x
- 系统环境变量
- $0 当前shell名称/脚本名称
- $# 传入脚本的参数数量
- $* 传入脚本的所有参数
- $? 上条命令执行的状态码
- $PS1 命令提示符
- $HOME 用户主文件夹
- $PATH 全局变量的搜索路径
作用域为所有shell 定义方式: 启动加载
declare [+/-] 选项变量
-给变量设定类型属性
+取消变量的类型属性
-a 将变量声明为数组类型
-i 将变量声明为整数型
-x 将变量声明为环境变量
-r 将变量声明为只读变量
-p 显示指定变量的被声明的类型
循环
while循环
While condition ; do 程序段: done
until循环
until condition ; do程序段; done
for循环
for var in [words...]; do程序段; done
shell中函数的定义格式如下:
[ function ] funname [()]
{
action;
[return int;]
}
-
shell自上而下执行,函数必须在使用前定义
-
函数获取变量和shell script类似,在Shell中,调用函数时可以向其传递参数。在函数体内部,通过
$n的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数... -
函数内return 仅仅表示函数执行状态,不代表 函数执行结果
-
返回结果一股使用echo、 printf, 在外面使用 $()、`` 获取结果
-
如果没有return ,函数状态是上一条命令的执行状态,存储在$?中