内置命令
是由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 查询所有函数名称列表