应该允许输入来自以下两种方式:
但是,使用 shell 操作符“<”(重定向标准输入),也可将标准输入重定向为来自文件,如下所示:
这里,command 会读它的标准输入,不过 shell/内核已将其重定向,所以标准输入来自 input_file。 使用 shell 操作符“|”(pipe)也可以使标准输入来自另一个程序的标准输出,如下所示:
这里,other_command 的标准输出(stdout)被 shell/内核透明地传递至 command 的标准输入。 输出应该被写至标准输出,缺省情况下标准输出同样也是终端(也就是用户的屏幕):
在这个例子中,command 的输出出现在屏幕上。 同样,使用 shell 操作符“>”(重定向标准输出)可以将标准输出重定向至文件。
这里,command 仍然写至它的标准输出,不过 shell/内核将其重定向,所以输出写至 output_file。 或者,还是使用“|”操作符,command 的输出可以成为另一个程序的标准输入,如下所示:
在这个例子中,shell/内核安排 command 的输出成为 other_command 的输入。 错误输出应该被写至标准错误(stderr),缺省情况下标准错误同样也是终端(也就是用户的屏幕):
这里,运行 command 时出现的任何错误消息都将被写至屏幕。 但是使用标准错误重定向,也可以将错误重定向至文件。例如:
在这个例子中,command 的正常输出在屏幕显示,而任何错误消息都被写至 error_file。 可以将标准输出和标准错误都重定向至不同的文件,如下所示:
这里,将标准输出写至 output_file,而将所有写至标准错误的内容都写至 error_file。 如果已将标准输出重定向至某一位置,也可以将标准错误重定向至同一位置。例如:
在这个例子中,符号“2>&1”表示“将标准错误发送至标准输出被重定向的任何位置”,因此错误和正常的消息都将在屏幕上显示。当然,这是多余的,因为下面简单的调用
将做同样的事。在标准输出已被重定向至其它源,而您希望在同一命令行上将标准错误也写至同一目的地时,该特性就非常有用。例如:
在这个例子中,已首先将标准输出重定向至 output_file;因此“2>&1”将使标准错误也被重定向至 output_file。 程序应该有可能既独立运行,也可以作为管道的一部分运行,如上面的示例所示。该特性可以重新叙述如下:不管程序的输入源(文件、管道或终端)和输出目的地是什么,程序都应该以同样的方式工作。这使得在如何使用它方面有最大的灵活性。 如果程序可以根据其输入或用户的首选参数有不同的行为,则应将它编写为接受名为 作为选项的命令行参数由前缀“-”(连字符)标识。另一类参数是那些不是选项的参数,也就是说,它们并不真正更改程序的行为,而更象是数据名称。通 常,这类参数代表程序要处理的文件名,但也并非一定如此;参数也可以代表其它东西,如打印目的地或作业标识(有关的示例,请参阅“man cancel”)。 可能代表文件名或其它任何东西的非选项参数(那些没有连字符作为前缀的)如果出现的话,应该在命令的最后出现。 通常,如果指定了文件名参数,则程序把它作为输入。否则程序从标准输入进行读取。 所有选项都应以“-”(连字符)开头。选项可以附加参数。 Linux 实用程序语法图看起来如下:
其中:
在以上定义中,术语“选项列表”是指由空格、跳格或二者的结合所分隔的一系列选项。 以上在方括号中显示的语法部分可以省去(在此情况下,必须将括号也省去)。 各个选项看起来可能与下面相似:
有些实用程序对带参数的选项采取略微不同的格式,其中参数与选项由空格分隔 ― 例如,“-s 20” ― 但我没有选择这么做,因为它会使编码复杂化;这样做的唯一好处是使命令易读一些。 转自:http://hi.baidu.com/ʫչ/blog/item/11b3edf82316d00ed8f9fd37 |
本文出自 “openpy” 博客,请务必保留此出处http://openpy.blog.51cto.com/2798268/1572429