Linux&&shell 总结 四

来源:互联网 发布:floyd算法伪代码 编辑:程序博客网 时间:2024/05/16 13:51

read 命令从标准输入(键盘)或另一个文件描述符中接受输入。在收到输入后, read 命令会将数据放进一个变量。

Linux用文件描述符( filedescriptor )来标识每个文件对象。文件描述符是一个非负整数,可以唯一标识会话中打开的文件。每个进程一次最多可以有九个文件描述符。出于特殊目的,bash shell保留了前三个文件描述符( 0 、 1 和 2 )

文件描述符
文件描述符缩写描述0STDIN标准输入1STDOUT标准输出2STDERR标准错误

STDIN 文件描述符代表shell的标准输入。shell从 STDIN文件描述符对应的键盘获得输入,在用户输入时处理每个字符。在使用输入重定向符号( < )时,Linux会用重定向指定的文件来替换标准输入文件描述符。它会读取文件并提取数据,就如同它是键盘上键入的。

STDOUT 文件描述符代表shell的标准输出。在终端界面上,标准输出就是终端显示器。shell的所有输出(包括shell中运行的程序和脚本)会被定向到标准输出中,也就是显示器。

默认情况下,大多数bash命令会将输出导向 STDOUT 文件描述符。

STDERR 文件描述符代表shell的标准错误输出。shell或shell中运行的程序和脚本出错时生成的错误消息都会发送到这个位置。默认情况下, STDERR 文件描述符会和 STDOUT 文件描述符指向同样的地方(尽管分配给它们的文件描述符值不同)。也就是说,默认情况下,错误消息也会输出到显示器输出中。


重定向 STDERR

STDERR 文件描述符被设成 2 。可以选择只重定向错误消息,将该文件描述符值放在重定向符号前。该值必须紧紧地放在重定向符号前,否则不会工作。

如果想重定向错误和正常输出,必须用两个重定向符号。需要在符号前面放上待重定向数据所对应的文件描述符,然后指向用于保存数据的输出文件。另外,如果愿意,也可以将STDERR 和 STDOUT 的输出重定向到同一个输出文件。为此bash shell提供了特殊的重定向符号&>.

临时重定向:在重定向到文件描述符时,你必须在文件描述符数字之前加一个 &

永久重定向:exec 命令告诉shell在脚本执行期间重定向某个特定文件描述符

mktemp 会在本地目录中创建一个文件,用6个字符码替换这6个 X ,从而保证文件名在目录中是唯一的。



原创粉丝点击