内置命令

是由shell bash自身提供的命令,而不是文件系统中的可执行的脚本文件文件

查看是否内置命令

type 命令

d is a shell builtin 得到这个是内置命令

内置命令比外部命令执行的更快,执行外部命令会触发磁盘io,还需要fork出一个子进程来执行,执行完在退出,执行内部命令相当于执行shell进程的一个函数,还是在当前进程内,减少了上下文切换

命令 用法
alisa 用于给命令创建别名,没有参数显示当前进程别名列表
echo 用于在终端输出字符串,并加上换行符
alias用法
alias 别名=“命令”   3单引号双引号都可以
删除别名
unalias 别名
unalias -a 删除所有
echo 字符串
echo -n 字符串    #不换行输出

输出转义字符

\n转义字符换行

echo -e "hello\n word"

-e参数解析转义字符

内置命令read

读取控制台输入,用于从标准的输入中读取数据并赋值给变量。如果没有进行重定向默认就是从终端控制台读取用户输入的数据,

read [-option] [var1 vasr2 ...]

option表示选项,var 表示用来存储数据的变量,如果没有提供变量名,存放到环境变量REPLY中,$REPLY保存最后一个读入命令的数据,

支持的参数

-n num    #限制读取字符的个数,num个
-p prompt    #显示提示信息,提示内容为prompt
-s             #静默模式,不会显示输入的字符;
-t second    #设置超时时间,单位为秒

exit 命令

用于退出当前shell环境进程,返回一个状态码(使用$?获取状态码)

exit      #返回0代表成功,非0失败

declare设置命令

用于声明shell变量,并设置变量的属性,也可以用来显示函数。不加上参数,则会显示全部的shell变量与函数(和set指令效果相同)

declare [+/-] [属性] [变量名=设置值]
- 设置变量属性 +取消变量所设置的属性
a array 设置为普通的索引数组
A ARRAY 设置为key-value关联数组
r readolnly 设置为只读
x export 设置变量为环境变量
i int 设置为整型变量
f function 设置为一个函数变量

实现key -value关联数组变量

declare -A 关联数组变量名=([字符串key1]=值1 [字符串key2]=值2 ...)
普通数组
declare -a 数组名=(值1 值2 ...)
declare -a 数组名=([0]=值1 [1]=值2 ...)

获取指定key 对应的value

${关联数组名[key]}

获取所有值

${关联数组名[*]}
${关联数组名[@]}
declare -f 查询所有函数定义 
declare -F 查询所有函数名称列表