shell 的内建命令1
时间:2008-12-26 来源:lanhaitaoa
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 <file。结果是file中的第一行成为变量var1的值。如果想要读取两个以上变量的话需要注意,文件第一行中以内部域分隔符分开的字符串分别依次赋值给var1 var2……。如果第一行分成的字符串个数小于变量个数,那以后的变量就被赋值为空。
内建命令要比系统论命令有比较高的执行效率。外部命令执行时往往需要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 <file。结果是file中的第一行成为变量var1的值。如果想要读取两个以上变量的话需要注意,文件第一行中以内部域分隔符分开的字符串分别依次赋值给var1 var2……。如果第一行分成的字符串个数小于变量个数,那以后的变量就被赋值为空。
相关阅读 更多 +