shell编程(四)内置命令

shell编程(四)内置命令

    • 一、定义
    • 二、常见的内置命令
      • 1、alias(设置别名)
      • 2、echo(输出)
      • 3、read(从控制读取输入)
      • 4、exit(退出)
      • 5、declare(设置变量属性)

一、定义

shell内置命令是由Bash Shell自身提供的命令,而不是系统可执行文件
使用type命令来查看一个命令是否是内置命令

type 命令

shell编程(四)内置命令_第1张图片
内置命令比外部命令执行的要快,执行外部命令会触发磁盘的io,还需要fork一个单独的进程来执行,执行完成后退出,而内置命令的调用相当于调用当前shell的一个函数,还是在当前shell进程内,减少了上下文切换,效率比较高。

二、常见的内置命令

1、alias(设置别名)

介绍:alias命令用于给命令创建别名使用,可以将复杂的命令设置一个简单的别名,提高工作效率,若alias命令不带任何参数,则直接显示当前shell的所有别名列表
shell编程(四)内置命令_第2张图片

别名的定义:

alias 别名="命令"  #这里使用单引号和双引号都可以

shell编程(四)内置命令_第3张图片
别名的删除

unset 别名

删除当前shell环境中所有的别名

unset -a

注意:

  • 这里的删除别名和定义别名都是在当前shell临时性的
  • 当前shell环境想要永久的使用和删除别名需要到当前shell的配置文件 ~/.bashrc 中定义和删除
  • 所有的shell环境都可以使用别名, 则需要到全局配置文件/etc/profile ,这个文件就是储存所有用户的环境变量,只要在这个文件里面添加别名的设置, 再执行 source /etc/profile 刷新配置,即可对所有shell环境生效

2、echo(输出)

echo是shell的一个内置命令,用于在终端输出字符串,并且在最后加上换行符

不换行输出:

echo -n 字符串 

shell编程(四)内置命令_第4张图片
echo 默认不解析转义字符,需要加上-e参数,才能解析转义字符

echo -e "hello \nworld"

shell编程(四)内置命令_第5张图片
清除echo结尾的换行 需要 -e 和 \c 一起使用

在这里插入图片描述

3、read(从控制读取输入)

介绍:从标准输入中读取数据赋值给变量,如果没有进行重定向,默认从终端控制台读取输入,如果进行了重定向,那么可以从文件中读取数据

语法:

read [-options] [var1 var2 ...]

options 表示:后面可以跟的参数,var表示变量,两者都是可选的,如果两者都没有指定,则读取的数据默认放在环境变量REPLY中,$REPLY保存最后一次read读取的数据

shell编程(四)内置命令_第6张图片
示例:
read读取用户输入的数据

shell编程(四)内置命令_第7张图片
options支持的参数列表:

shell编程(四)内置命令_第8张图片
示例一、

read 读取输入数据,带上提示信息

-p参数

shell编程(四)内置命令_第9张图片
示例二、
read限制读取一个字符

-n -p 参数 一起使用

shell编程(四)内置命令_第10张图片
注意:加上换行echo的作用是:输入一个字符后直接就换行

示例三、

带限制时间的输入,并且隐藏输入内容,常用于设置密码的时候,提高安全性

-p -s -t 三个参数一起使用
shell编程(四)内置命令_第11张图片

4、exit(退出)

介绍:exit用于结束shell环境运行,并且可以返回一个状态码,可以用$?来获取exit退出的状态码

正确执行程序:退出语法

exit 0

程序执行中有错误,我们这时候想退出程序:退出语法

exit 非0数字,一般是0-255之间

exit应用场景:

  • 结束当前shell进程
  • shell程序执行出错的时候想要退出,可以定义不同的退出状态码,表示代表不同的错误,比如打开一个文件的时候,可以用1代表文件不存在,2代表没有读取权限,3代表文件类型不匹配

示例:
shell编程(四)内置命令_第12张图片

$?获取退出状态码

在这里插入图片描述

5、declare(设置变量属性)

用法:

  • 设置变量属性
  • 查看所有shell变量和函数 和set命令类似
  • 实现索引数组和关联数组
    shell编程(四)内置命令_第13张图片
    示例一、

设置一个变量为int型的变量

-i 指定变量的属性为int类型,再次用字符串赋值,则会把age的值变成0,表示赋值失败了

在这里插入图片描述

+i 取消变量age类型为int类型的限制,age再次赋值为字符串,则成功

shell编程(四)内置命令_第14张图片

-r设置只读变量,再次赋值失败,只读变量不可修改

在这里插入图片描述

你可能感兴趣的:(shell编程,bash,linux,开发语言)