文章详情

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

shell输入与输出

时间:2005-11-11  来源:mvpsjp

在s h e l l脚本中,可以用几种不同的方式读入数据:可以使用标准输入—缺省为键盘,或
者指定一个文件作为输入。对于输出也是一样:如果不指定某个文件作为输出,标准输出总
是和终端屏幕相关联。如果所使用命令出现了什么错误,它也会缺省输出到屏幕上,如果不
想把这些信息输出到屏幕上,也可以把这些信息指定到一个文件中。

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

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

c a t命令的一般形式为:
cat [options] filename1 ... filename2 ...

c a t命令最有用的选项就是:
-v 显示控制字符

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

tee
e e命令作用可以用字母T来形象地表示。它把输出的一个副本输送到标准输出,另一个
副本拷贝到相应的文件中。如果希望在看到输出的同时,也将其存入一个文件,那么这个命
令再合适不过了。
它的一般形式为:tee -a files其中,- a表示追加到文件末尾。

标准输入、输出和错误
标准输入是文件描述符0。它是命令的输入,缺省是键盘,也可以是文件或其他命令的输出。
标准输出是文件描述符1。它是命令的输出,缺省是屏幕,也可以是文件。
标准错误是文件描述符2。这是命令错误的输出,缺省是屏幕,同样也可以是文件。

在执行命令时,可以指定命令的标准输入、输出和错误,要实现这一点就需要使用文件
重定向。下面列出了最常用的重定向组合,并给出了相应的文件描述符。
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 <&- 把关闭标准输入

重定向操作符command << delimiter是一种非常有用的命令,通常都被称为“此处”文挡。
s h e l l将分界符d e l i m i t e r之后直至下一个同样的分界符之前的所有内容都作为输入,遇到下一个分界符, s h e l l就知道输
入结束了。这一命令对于自动或远程的例程非常有用。如自动ftp。
ftp -i -n -p <<!
open $host
user sjp sjp
binary
lcd /tmp
put  $file
bye
!

/ d e v / n u l l 实际就上是系统的垃圾箱。如果不想看到错误输出,可重定向到此处。

相关阅读 更多 +
排行榜 更多 +
坦克战争世界

坦克战争世界

模拟经营 下载
丛林反击战

丛林反击战

飞行射击 下载
几何飞行安卓版

几何飞行安卓版

飞行射击 下载