C Shell 中的输入和输出重定向
在 C Shell 执行命令之前,扫描命令行以获取重定向字符。 这些特殊的符号定向 Shell 以重定向输入和输出。
可以使用以下语法语句重定向命令的标准输入和输出:
项 | 描述 |
---|---|
< 文件 |
打开指定的 File(它是第一个展开的变量、命令和文件名)作为标准输入。 |
<< 单词 |
读取 Shell 输入,直到某行匹配 Word 变量的值。 Word 变量不受制于变量、文件名或命令替换。 在行上完成任何替换前,每一输入行与 Word 变量做比较。 除非 Word 变量中出现引号字符 (\ , " , ' 或 ` ) ,否则 shell 在中间行上执行变量和命令替换,允许 \ 字符对 $ , \ 和 ` 字符进行引号。 所取代的命令保留所有空白、制表符和换行符,除了最后一个换行符(被删除)。 结果文本放置在一个匿名临时文件中,赋予它命令以作为标准输入。 |
> 文件
|
使用指定的 File 作为标准输出。 如果 File 不存在,那么进行创建。 如果
File 存在,那么截断它,并且其以前的内容丢失。 如果设置了 noclobber Shell 变量,那么 File 绝不能存在或为字符特殊文件,否则将导致错误。 这帮助防止文件的意外破坏。 在这种情况下,请使用包含 ! 的表单来禁止此检查。 File 以与 < 输入文件名相同的方式展开。 格式 >& 将标准输出和标准错误都重定向至指定的 File。 以下示例显示如何将标准输出分别重定向到 /dev/tty 和标准错误到 /dev/null。 要求圆括号以允许标准输出和标准错误独立。
|
> > 文件
|
使用指定的 文件 作为标准输出,例如 > ,但 将 输出附加到 文件的末尾。 如果设置了 noclobber Shell 变量,而 File 不存在,那么将产生错误,除非提供了其中一个包括 ! 的表单。 否则,它类似于 > 。 |
命令接收由输入/输出参数和存在命令作为管道更改的环境,Shell 在该环境中调用。 这样,不像一些以前的 Shell,从 Shell 脚本运行的命令在缺省情况下不具有对命令文本的访问权。 相反,它们接收 Shell 的原始标准输入。 使用 <<
机制来呈现直接插入数据,它允许 Shell 命令文件作为管道的组件运行,还使 Shell 能阻拦读其输入。 请注意,拆离运行命令的缺省标准输入不更改到空 /dev/null 文件。 相反,标准输入保留 Shell 的原始标准输入。
要通过具有标准输出的管道重定向标准错误,可使用 |&
格式而非只是 |
。