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 有两种使用方法:
- 第一种用法是在命令后跟上某个命令的别名,用于删除指定的别名。
- 第二种用法是在命令后接-a 参数,删除当前 Shell 进程中所有的别名。
8.3 echo
echo命令用于在终端输出字符串,并在最后加上换行符。
如果不想让其换行,可以加上-n参数。
echo -n "1243"
默认情况下,不会解析以反斜杠开头的转义字符,比如\n表示换行,echo默认将它当做普通字符对待。
我们可以使用-e来让echo解析转义字符,有了-e参数我们可以使用\c来强制echo 命令不换行。
#!/bin/bash 2.
name="Tom"
age=20
height=175
weight=62
echo -e "${name} is ${age} years old, \c"
echo -e "${height}cm in height \c"
echo "and ${weight}kg in weight." 11. echo "Thank you!"
运行结果:
Tom is 20 years old, 175cm in height and 62kg in weight.
Thank you!
8.4 read命令
read可以理解为读取键盘输入的内容命令。
read -p "Enter some information > " name url age
echo "网站名字:$name"
echo "网址:$url"
echo "年龄:$age"
输入三块内容 要输完 在敲回车,否则只会赋值给第一个变量。
8.5 declare 命令
declare [+/-] [aAfFgilprtux] [变量名=变量值] declare是用来声明变量属性的。-表示设置属性 +表示取消属性。
aAfFgilprtux 都是具体的选项
declare -i m n ret
m=10
n=11
ret=$m+$n
echo $ret