什么<在Shell Scripts中吗?

时间:2013-08-12 22:39:42

标签: bash shell

例如,

matlab -nodesktop -singleCompThread < run%d/run.m

我知道这意味着matlab假设在run%d目录中使用run.m文件,但它对于一般的shell意味着什么?

4 个答案:

答案 0 :(得分:6)

有关重定向的信息,请参阅bash手册:http://www.gnu.org/s/bash/manual/html_node/Redirections.html

答案 1 :(得分:4)

本身,命令 < filename 告诉shell运行命名的命令,其输入来自文件< em> filename ,而不是您键入命令行的终端。

您也可以采用其他方式,使用命令 > filename 将命令输出发送到文件中。

实际上有两个不同的输出流连接到终端 - 正常的输出流,称为“标准输出”并由>重定向,以及“标准错误”流,让程序告诉您何时即使正常输出进入文件而不是终端,也会出现问题。如果您真的不想看到这些错误消息,但希望它们也能进入终端,您可以使用>& filename

如果要将错误发送到各自的文件中,可以使用2> * error_filename *;只留下标准输出流,转到您的终端或您使用>|发送的任何地方。

你可以做更多的事情,比如将一个命令的输出用作另一个命令需要文件名的文件。有关详细信息,请参阅the link konsolebox posted

答案 2 :(得分:1)

它将命令的输入从键盘更改为该文件

答案 3 :(得分:0)

大致相当于

cat run%d/run.m | matlab -nodesktop -singleCompThread

可能有一些我不知道的细微差别。但它基本上将run%d/run.m的内容发送到matlab作为“键盘”输入(通过标准输入)。