文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Shell学习4-shell输入与输出

Shell学习4-shell输入与输出

时间:2010-07-12  来源:soqsoq

Shell学习4-shell输入与输出

2010.06

1.文件名置换

*   匹配文件名中的任何字符串,包括空字符串。

? 匹配文件名中的任何单个字符。

[...]   匹配[ ]中所包含的任何字符。

[!...]   匹配[ ]中非感叹号!之后的字符。

列出了以 i或o开头的文件名:

ls [io]*

为了匹配所有以l o g .开头、后面跟随一个数字、然后可以是任意字符串的文件名,可以用

l o g . [ 0 - 9 ] *,其中[ 0 - 9 ]表示任意单个数字,星号*代表了其他字符:

ls log.[0-9]*

使用 [ ! 0 - 9 ] *来表示非数字开头的字符串,其中 !是非的意思:

ls log.[!0-9]*

 

2.echo

echo string

e c h o命令有很多功能,其中最常用的是下面几个:

\c   不换行。

\f   进纸。

\t   跳格。

\n   换行。

如果希望提示符出现在输出的字符串之后,可以用:

echo “what is your name:\c”

如果想在输出字符之后,让光标移到下一行,可以用:

Echo “what is you name:”

如果是LINUX系统,那么......

必须使用- n选项来禁止echo命令输出后换行:

$ echo -n "What is your name :"

必须使用-e选项才能使转义符生效:

echo –e “\007your home directory is $HOME, you are connect on `tty`”

如果想把一个字符串输出到文件中,使用重定向符号 >。

$ echo "The log files have all been done"> myfile

或者可以追加到一个文件的末尾,这意味着不覆盖原有的内容:

$ echo "$LOGNAME carried them out at `date`">>myfile

 

3.read

可以使用r e a d语句从键盘或文件的某一行文本中读入信息,并将其赋给一个变量。如果只指定了一个变量,那么 r e a d将会把所有的输入赋给该变量,直至遇到第一个文件结束符或回车。

它的一般形式为:

read varible1 varible2 ...

如果输入文本域过长,Shell 将所有的超长部分赋予最后一个变量。下面的例子,假定要

取变量名字和姓,但这次输入三个名字;结果如下;

$read name surname

John Lemon Doe

$echo name

John

$echo surname

Lemon Doe

 

3.cat

c a t是一个简单而通用的命令,可以用它来显示文件内容,创建文件,还可以用它来显示

控制字符。在使用c a t命令时要注意,它不会在文件分页符处停下来;它会一下显示完整个文件。如果希望每次显示一页,可以使用 m o r e命令或把c a t命令的输出通过管道传递到另外一个具有分页功能的命令中,请看下面的例子:

$ cat myfile | more

$ cat myfile | pg

c a t命令的一般形式为:

cat [options] filename1 ... filename2 ...

c a t命令最有用的选项就是:

-v 显示控制字符

如果希望显示m y f i l e 1、m y f i l e 2、m y f i l e 3这三个文件,可以用:

$ cat myfile1 myfile2 myfile3

如果希望创建一个名为b i g f i l e的文件,该文件包含上述三个文件的内容,可以把上面命令的输出重定向到新文件中:

$ cat myfile1 myfile2 myfile3 > bigfile

如果希望创建一个新文件,并向其中输入一些内容,只需使用 c a t命令把标准输出重定向

到该文件中,这时 c a t命令的输入是标准输入—键盘,你输入一些文字,输入完毕后按

< C T R L - D >结束输入。这真是一个非常简单的文字编辑器!

$cat > myfile

This is great

<ctrl+d>

 

4.管道

可以通过管道把一个命令的输出传递给另一个命令作为输入。管道用竖杠 |表示。它的一

般形式为:

命令1 |命令2

其中|是管道符号。

 

5.tee

t e e命令作用可以用字母 T来形象地表示。它把输出的一个副本输送到标准输出,另一个

副本拷贝到相应的文件中。如果希望在看到输出的同时,也将其存入一个文件,那么这个命

令再合适不过了。

它的一般形式为:

tee -a files

其中,- a表示追加到文件末尾。

$who | tee –a who.out

 

6.标准输入、输出、错误

文 件                      文件描述符

输入文件—标准输入             0

输出文件—标准输出              1

错误输出文件—标准错误          2

标准输入是文件描述符0。它是命令的输入,缺省是键盘,也可以是文件或其他命令的输出。

标准输出是文件描述符1。它是命令的输出,缺省是屏幕,也可以是文件。

标准错误是文件描述符2。这是命令错误的输出,缺省是屏幕,同样也可以是文件。你可

能会问,为什么会有一个专门针对错误的特殊文件?这是由于很多人喜欢把错误单独保存到

一个文件中,特别是在处理大的数据文件时,可能会产生很多错误。

 

7.文件重定向

command > filename         把把标准输出重定向到一个新文件中

command >> filename        把把标准输出重定向到一个文件中(追加)

command 1 > fielname       把把标准输出重定向到一个文件中

command > filename 2>&1    把把标准输出和标准错误一起重定向到一个文件中

command 2 > filename        把把标准错误重定向到一个文件中

command 2 >> filename       把把标准输出重定向到一个文件中(追加)

command >> filename 2>&1   把把标准输出和标准错误一起重定向到一个文件中 (追加)

command < filename >filename2 把c o m m a n d命令以f i l e n a m e文件作为标准输入,以 f i l e n a m e 2文件作为标准输出

command < filename        把c o m m a n d命令以f i l e n a m e文件作为标准输入

command << delimiter      把从标准输入中读入,直至遇到d e l i m i t e r分界符

command <&m            把文件描述符m作为标准输入

command >&m            把标准输出重定向到文件描述符m中

command <&-             把关闭标准输入

相关阅读 更多 +
排行榜 更多 +
太空飞船终极攻击

太空飞船终极攻击

飞行射击 下载
化作星辰

化作星辰

飞行射击 下载
枪战火柴人中文版

枪战火柴人中文版

飞行射击 下载