Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15653
  • 博文数量: 5
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 70
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-11 11:43
文章分类
文章存档

2011年(1)

2009年(2)

2008年(2)

我的朋友

分类:

2008-12-26 18:06:43


  shell内建命令是指bash(或其它版本)工具集中的命令。一般都会有一个与之同名的系统命令,比如bash中的echo命令与/bin/echo是两个不同的命令,尽管他们行为大体相仿。当在bash中键入一个命令时系统会先看他是否是一个内建命令,如果不是才会查看是否是系统命令或第三方工具。所以在bash中键入echo命令实际上执行bash工具集中的bash命令也就是内建命令,而不是/bin/echo这个系统命令。
  内建命令要比系统论命令有比较高的执行效率。外部命令执行时往往需要fork出(产生出)一个子进程,而内建命令一般不用。下面(或许以后还会有)这一篇文章将介简bash的内建命令,一则便于本人日后翻阅,二则希望能对别人有所帮助。纯属个人经验,有不确切之处敬请指正,以免误人子弟。
 1、echo命令。用法: echo arg。 这个命令是bash中最简单常用的命令用于将其后的字符串arg显示出来。
-n选项将阻止另起一行,一般echo命令会在显示arg后另一行。
-e选项启用转意字符。转意字符有"\t" "\a" "\n"等.如果没有-e选项,这些转意字符将不起作用。
比如 echo -e “lan\n"将在显示出lan后再多输出一个空行,而echo "lan\n”将会显示"lan\n"

  2、read命令。用法: read var 。将键盘输入的值(以回车结束)赋给变量var。一般情况下不带参数的read不支持多行输入,即一但敲回车就将之前的输入送入指定的变量中。-r选项可以使read命令支持多行输入,
如使用read -r var 可以先键入一个字符串并以\结尾,敲回车后另起一行再输入一个字符串,再回车位于两行的两个字符串都将赋予var变量,echo $var 会显示两个字符串以空格格开。使用read命令不一定非要敲回车才能将输入的字符串传给指定变量,可以不用回车,直接从键盘接收若干个字符,使用中下命令:
read -s -nN -p “prompt strings" var 。-s不显示输入,-nN从键盘读取N个字符,-p在读从键盘读取字符前先打印出提示字符串“promt strings”,可以是任何字符串。
read可以为多个变量赋值,如read var1 var2 var3。从键盘键入3个字符串,以空格间开将会给3 个变量赋值。如果少于3个输入,后面的变量将会被赋空值;反之,如果多于3个输入,多余的字符串都将赋予最后一个变量var3.
 read也可以通过重定向从文件中读取输入。用法:read var1
阅读(1341) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

hamasisn2013-03-12 22:30:45

受教了,我用了linux这么多年,一直没有注意到shell的内建命令。