Shell 内建命令,就是由 Bash 自身提供的命令,而不是文件系统中的某个可执行文件。
eg: cd pwd这些我们常用的命令
通常来说,内建命令会比外部命令执行得更快,执行外部命令时不但会触发磁盘 I/O,还需要 fork 出一个单独的进程来执行,执行完
成后再退出。而执行内建命令相当于调用当前 Shell 进程的一个函数。

8.1 使用 alias 命令自定义别名

语法为:

alias new_name=’command’

别名只是临时的,在代码中使用 alias 命令定义的别名只能在当前 Shell 进程中使用,在子进程和其它进程中都不能使用。当前 Shell 进程结束后,别名 也随之消失。
要想让别名对所有的 Shell 进程都有效,就得把别名写入 Shell 配置文件。Shell 进程每次启动时都会执行配置文件中的代码做一些初始化工作,将别名放在配置文件中,那么每次启动进程都会定义这个别名

8.2 使用 unalias 命令删除别名

使用 unalias 内建命令可以删除当前 Shell 进程中的别名。unalias 有两种使用方法:

  1. 第一种用法是在命令后跟上某个命令的别名,用于删除指定的别名。
  2. 第二种用法是在命令后接-a 参数,删除当前 Shell 进程中所有的别名。

8.3 echo

echo命令用于在终端输出字符串,并在最后加上换行符。
如果不想让其换行,可以加上-n参数。

  1. echo -n "1243"

默认情况下,不会解析以反斜杠开头的转义字符,比如\n表示换行,echo默认将它当做普通字符对待。
我们可以使用-e来让echo解析转义字符,有了-e参数我们可以使用\c来强制echo 命令不换行。

  1. #!/bin/bash 2.
  2. name="Tom"
  3. age=20
  4. height=175
  5. weight=62
  6. echo -e "${name} is ${age} years old, \c"
  7. echo -e "${height}cm in height \c"
  8. echo "and ${weight}kg in weight." 11. echo "Thank you!"
  9. 运行结果:
  10. Tom is 20 years old, 175cm in height and 62kg in weight.
  11. Thank you!

8.4 read命令

read可以理解为读取键盘输入的内容命令。

  1. read -p "Enter some information > " name url age
  2. echo "网站名字:$name"
  3. echo "网址:$url"
  4. echo "年龄:$age"

输入三块内容 要输完 在敲回车,否则只会赋值给第一个变量。

8.5 declare 命令

declare [+/-] [aAfFgilprtux] [变量名=变量值] declare是用来声明变量属性的。-表示设置属性 +表示取消属性。
aAfFgilprtux 都是具体的选项

  1. declare -i m n ret
  2. m=10
  3. n=11
  4. ret=$m+$n
  5. echo $ret