目录
1.内置命令介绍:
2.Shell内置命令:alias设置别名
3.Shell内置命令:echo输出字符串
4.Shell内置命令:read读取控制台输入
5.Shell内置命令:exit退出
6.Shell内置命令:declare设置变量
1.内置命令介绍:
Shell内置命令,就是由Bash Shell自身提供的命令,而不是文件系统中的可执行脚本文件
1、使用type来确定一个命令是否是内置命令:
语法:
type 命令
如图:
cd 是内置命令
其余为脚本文件。
2、内、外置命令区别:
内置命令比脚本文件执行速度更快,执行脚本文件时不但会触发磁盘I/O,还需要fork出一个单独的进程来执行,执行完再退出。而内置命令就相当于是调用当前Shell进程的一个函数,还是在当前Shell环境进程内,减少了上下文切换。
2.Shell内置命令:alias设置别名
1、alias介绍:
alias用于给命令创建别名
好处:可以将经常操作比较复杂的命令进行设置别名,通过别名的操作提高工作效率,若该命令不带任何参数,则显示当前Shell进程中的所有别名列表。
如图:
显示当前Shell进程中的所有别名列表。
2、alias别名定义语法:
alias 别名="命令"
3、unalias别名删除语法:
删除指定别名:
unalias 别名
删除当前Shell环境中的所有别名
unalias -a
注意:以上两种方式删除都是临时删除,如果想要永久删除必须去配置文件中手动删除。
4、alias演示:
创建别名:
删除别名:
3.Shell内置命令:echo输出字符串
1、目标:
1.能够echo输出不换行字符串
2.能够使用echo输出转义字符
2、echo输出语法:
默认换行输出语法:
echo 字符串
输出不换行语法:
echo -n 字符串
3、输出演示:
1.创建echo1.sh
touch echo1.sh
2.编辑文件
vim echo1.sh
3.运行文件
sh echo1.sh
4、echo输出转义字符
语法:
echo -e 字符串
'\n'转义字符(换行)
'\c'转义字符(清除结尾换行)与-n作用相同。
用于echo输出字符串非结尾处换行,但是默认echo无法解析/n转义字符,添加了-e之后就可以解析转义字符了。
演示:
4.Shell内置命令:read读取控制台输入
1、目标:
理解read命令的作用
使用read给多个变量赋值
使用read读取一个字符
使用read限制时间输入
2、介绍:
read是Shell内置命令,用于标准输入中读取数据并赋值给变量,如果没有进行重定向,默认就是从终端控制台读取用户输入的数据,如果进行了重定向,那么就可以从文件中读取数据。
3、语法:
read [-options] [var1 var2]
options表示选项,var表示用来储存数据的变量。这两个都是可选的,如果没有提供变量名,那么读取到的数据将存放在环境变量REPLY变量中,$REPLY保存read最后一个读入命令的数据。
options支持的参数:
不设置变量名:
有变量名:
示例1:多个变量赋值:
需求
使用read命令给多个变量赋值
如图:
示例2:读取一个字符
需求
从控制台只读取一个字符
如图:
示例3:限制时间输入
需求
在终端控制台输入时,设置指定时间内输入密码
如图:
5.Shell内置命令:exit退出
1、 目标:
掌握exit的应用场景
2、介绍
exit用于退出当前Shell环境进程结束运行,并且可以返回一个状态码,一般使用$?可以获取退出状态码,注意:$?是特殊变量,如想了解、请转至:Shell变量
3、语法:
正确退出语法
exit #默认返回状态码0,一般代表命令执行成功
错误退出语法
exit 非0数字 #数字建议的范围0~255,一般代表命令执行失败
4、exit应用场景:
1.介绍当前Shell进程
2.当Shell进程执行出错退出时,可以返回不同的状态值代表不同的错误
比如:执行一个脚本文件里面操作一个文件时,可以返回1表示文件不存在,2表示文件没有读取权限,3表示文件类型不对
示例:Shell脚本文件中使用exit退出
需求:
编写Shell脚本使用exit退出
6.Shell内置命令:declare设置变量
1、目标
能够使用declare设置变量的属性
能够使用declare查看全部Shell变量与函数
能够使用declare实现索引数组与管链数组变量
2、declare命令作用
设置变量的属性
查看全部Shell变量与函数
实现索引数组与管链数组变量
3、declare设置变量的属性语法
declare [+/-] [aArxif] [变量名称=设置值]
+/- "-"可以用来指定变量的属性,"+"则是取消变量所设的属性
a array,设置为普通索引数组
A Array,设置为key-value关联数组
r readonlu,设置为只读,也可使用readonly
x exprot,设置变量为全局变量,也可使用export
i int,设置为整型变量
f function,设置为一个函数变量
示例1:设置变量属性
需求
操作一个变量属性,设置为整型\取消整型\设置为只读等操作
4、实现key-value关联数组变量语法
关联数组也称为“键值对(key-value)"数组,键(key)也即字符串形式的数组下标,值(value)也即元素值,
语法:
declare -A 关联数组变量名=([字符串key1]=值1 [字符串key2]=2 ....)
declare也可以用于定义普通索引数组,-a 参数创建普通或索引数组-A 创建关联数组
语法:
declare -a 关联数组变量名=(值1 值2)
declare -a 关联数组变量名=([0]=值1 [1]=值2 ....)
获取指定key的值
${关联数组变量名[key]}
获取所有的值
${关联数组变量名[*] }
${关联数组变量名[@] }
示例2:实现普通索引数组、关联数组
需求
使用declare定义一个普通数组,并获取打印元素数据的值
如图: