您的位置:首页 > 运维架构 > Shell

Linux&&shell 总结 四

2017-08-07 15:25 225 查看
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 ,从而保证文件名在目录中是唯一的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: