tsx81429 发表于 2024-6-11 08:46:24

Shell脚本学习_内置下令

目次
1.内置下令先容:
2.Shell内置下令:alias设置别名
3.Shell内置下令:echo输出字符串
4.Shell内置下令:read读取控制台输入
5.Shell内置下令:exit退出
6.Shell内置下令:declare设置变量

1.内置下令先容:

   Shell内置下令,就是由Bash Shell自身提供的下令,而不是文件系统中的可执行脚本文件
1、使用type来确定一个下令是否是内置下令:

语法:
type 命令
如图:
   cd 是内置下令 
其余为脚本文件。
https://img-blog.csdnimg.cn/direct/c220c3c1e40b475381aa237d98cc9ab3.png
2、内、外置下令区别: 

   
 内置下令比脚本文件执行速度更快,执行脚本文件时不但会触发磁盘I/O,还需要fork出一个单独的进程来执行,执行完再退出。而内置下令就相称于是调用当前Shell进程的一个函数,照旧在当前Shell情况进程内,减少了上下文切换。
2.Shell内置下令:alias设置别名

1、alias先容:

   alias用于给下令创建别名
    长处:可以将常常操作比较复杂的下令进行设置别名,通过别名的操作提高工作服从,若该下令不带任何参数,则显示当前Shell进程中的所有别名列表。
如图:
显示当前Shell进程中的所有别名列表。https://img-blog.csdnimg.cn/direct/c673fdc887524caba58c82d476b62c18.png
2、alias别名定义语法:

   alias 别名="下令" 
3、unalias别名删除语法:

删除指定别名:
unalias 别名 删除当前Shell情况中的所有别名
unalias -a 留意:以上两种方式删除都是暂时删除,如果想要永久删除必须去设置文件中手动删除。
4、alias演示:

创建别名:
https://img-blog.csdnimg.cn/direct/7ecd0fa17a684466bf1baf855829d4f7.png
删除别名:
https://img-blog.csdnimg.cn/direct/e3df9f8a4e0c4bb69f0af08334d61066.png 
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  https://img-blog.csdnimg.cn/direct/e8e3fbda4d7646aa99eeadf1dda1a085.png 
https://img-blog.csdnimg.cn/direct/3730a96c999f4dc7a28c30191d15afc8.png
4、echo输出转义字符

语法:
echo -e 字符串 '\n'转义字符(换行)
'\c'转义字符(清除结尾换行)与-n作用相同。
用于echo输出字符串非结尾处换行,但是默认echo无法解析/n转义字符,添加了-e之后就可以解析转义字符了。
演示:
https://img-blog.csdnimg.cn/direct/1c4424f16d9448018876b16eae772771.png 
4.Shell内置下令:read读取控制台输入

1、目标:

   明白read下令的作用
使用read给多个变量赋值
使用read读取一个字符
使用read限定时间输入
2、先容:

   read是Shell内置下令,用于尺度输入中读取数据并赋值给变量,如果没有进行重定向,默认就是从终端控制台读取用户输入的数据,如果进行了重定向,那么就可以从文件中读取数据。
3、语法:

read [-options]    options体现选项,var体现用来储存数据的变量。这两个都是可选的,如果没有提供变量名,那么读取到的数据将存放在情况变量REPLY变量中,$REPLY生存read最后一个读入下令的数据。
options支持的参数:
https://img-blog.csdnimg.cn/direct/0a6fd16776bf4ff4893d93f3ab0d292a.png
不设置变量名: 
https://img-blog.csdnimg.cn/direct/3313cb4c53b842749b3496072f0f0da1.png 
有变量名:
https://img-blog.csdnimg.cn/direct/1470cd1037184283baa98c0737e74a33.png 
示例1:多个变量赋值:

需求
   使用read下令给多个变量赋值
如图: 
https://img-blog.csdnimg.cn/direct/9ea22ac3f1ea451bb4b722ea8884a57d.png
 https://img-blog.csdnimg.cn/direct/5fa66ac7be5c4244a80f0871fafb43a5.png
示例2:读取一个字符

需求
   从控制台只读取一个字符
如图:
https://img-blog.csdnimg.cn/direct/60b76b100f5d4d6da27a9c8ff6f21677.png
https://img-blog.csdnimg.cn/direct/20cf86c03e3748b08782b8bc3fb26324.png 
https://img-blog.csdnimg.cn/direct/18fbc318aa20459abc365ffc7e30d20d.png 
示例3:限定时间输入

需求
   在终端控制台输入时,设置指定时间内输入密码
如图:
https://img-blog.csdnimg.cn/direct/68c35d4e052041dca549702171672988.png
https://img-blog.csdnimg.cn/direct/e0e169395dd148b0b7f1011ce86b6744.png


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退出
https://img-blog.csdnimg.cn/direct/576e842728c645ddbdfd31bedb2f5682.png
https://img-blog.csdnimg.cn/direct/800eef2173c14e7d8ba9149cadc89f59.png

6.Shell内置下令:declare设置变量

1、目标

   能够使用declare设置变量的属性
能够使用declare查看全部Shell变量与函数
能够使用declare实现索引数组与管链数组变量
2、declare下令作用

   设置变量的属性
查看全部Shell变量与函数
实现索引数组与管链数组变量
3、declare设置变量的属性语法

   declare [+/-] [变量名称=设置值]
    +/-   "-"可以用来指定变量的属性,"+"则是取消变量所设的属性
a   array,设置为平常索引数组
A   Array,设置为key-value关联数组
r   readonlu,设置为只读,也可使用readonly
x   exprot,设置变量为全局变量,也可使用export
i   int,设置为整型变量
f   function,设置为一个函数变量
示例1:设置变量属性

需求
   操作一个变量属性,设置为整型\取消整型\设置为只读等操作
https://img-blog.csdnimg.cn/direct/2861bfaec8834b488726452e4b3c2452.png
4、实现key-value关联数组变量语法

 关联数组也称为“键值对(key-value)"数组,键(key)也即字符串情势的数组下标,值(value)也即元素值,
语法:
declare -A 关联数组变量名=([字符串key1]=值1 [字符串key2]=2 ....)   declare也可以用于定义平常索引数组,-a 参数创建平常或索引数组-A 创建关联数组
 语法:
declare -a 关联数组变量名=(值1 值2)
declare -a 关联数组变量名=(=值1 =值2 ....) 获取指定key的值
   ${关联数组变量名}
获取所有的值
   ${关联数组变量名
[*] }
${关联数组变量名[@] }
示例2:实现平常索引数组、关联数组 

需求
   使用declare定义一个平常数组,并获取打印元素数据的值
如图:
https://img-blog.csdnimg.cn/direct/1a5b7b80c661415a93cce523e21873a4.png
https://img-blog.csdnimg.cn/direct/d5753aec6dce4ce681e3e9eedafb0834.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Shell脚本学习_内置下令