文章详情

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

shell输入输出

时间:2010-05-13  来源:zyd_cu

标准I/O

标准输入/输出是软件工具设计原则里最基本的观念。它的构想是:程序应有一个数据来源,数据出口,以及报告问题的地方,它们分别叫作标准输入,标准输出和标准错误输出。

程序应该不知道也不在意其输入与输出背后是哪种设备,这些设备可能是磁盘文件,终端,磁带机,网络连接或者是另一个执行中的程序。程序启动时,这些标准位置都已打开,准备好被使用了。

 

使用read读取行

read将信息读入一个或多个变量,默认自标准输入读取行,并通过shell的$IFS进行分割。第一个单词赋给第一个变量,第二个单词赋给第二个变量,以此类推。如果单词多余变量个数,则所有剩下的单词,全赋给最后一个变量,read一旦遇到文件结尾,会以失败值退出。

read默认将\看作续行符,可通过-r参数将\解释为普通字符。

 

从文件读取变量

while IFS=: READ user pass uid gid fullname homedir shell

do

         …  处理每个用户的行

done < /etc/passwd

 

#小技巧,任何命令都能用来将输入通过管道传送给read,如

cat /etc/passwd |

while IFS=: READ user pass uid gid fullname homedir shell

do

         …  处理每个用户的行

done

以上代码读取/etc/passwd的每一行,并将各个字段依次独到user,pass等变量中,进行相应的处理。当遇到输入文件结尾时,read会以非0值退出,这个操作将终止while循环。

#重定向操作的不正确使用

while IFS=: READ user pass uid gid fullname homedir shell < /etc/passwd

do

         …  处理每个用户的行

done

while循环永远不会结束,每一次执行while判断,都打开/etc/passwd一次,并且每次都处理该文件的第一行。

 

重定向

>  重定向标准输出( >> 追加)

<  重定向标准输入

program  <> file,可为程序program提供读取与写入操作到file,其从file读取输入,将结果输出到file。

 

make 1> result 2> err 改变make程序的标准输出和标准错误输出,1可省略。

make > result 2>&1  将标准输出定向到result,把标准错误输出定向到文件描述符1描述的文件(此时1已被定向到了result),故标准错误输出也被定向到result。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载