在我们的一篇文章中,我们看到了内部命令和外部命令之间的区别。内部命令是shell内部执行而不创建任何进程的命令,而对于外部命令,会创建一个进程。由于这个原因,与外部命令相比,内部命令始终要快得多。
示例1:查找字符串的长度:
$ x="welcome"$ expr $x : '.*'7$ echo ${#x}7
使用了两个不同的命令。其中一个使用了外部命令expr,另一个使用了内部命令echo。相比于expr,echo的性能会更好。
示例2:在Shell中逐行读取文件:
- 选项1:
$ cat file | while read line> do> echo $line> done
- 选项2:
$ while read line> do> echo $line> done < file
在第一个选项中,我们使用cat命令将输出管道到while命令。然而,在选项2中,它是纯粹的内部处理,在此使用输入文件描述符读取文件。
提示:尽可能使用内部命令。