例如,
matlab -nodesktop -singleCompThread < run%d/run.m
我知道这意味着 matlab 应该使用 run%d 目录中的 run.m 文件,但是这对 shell 来说一般意味着什么?
请参阅有关重定向的 bash 手册:http ://www.gnu.org/s/bash/manual/html_node/Redirections.html
命令 <
filename本身告诉 shell 运行命名命令,其输入来自文件filename,而不是来自您键入命令行的终端。
您也可以采用另一种方式,使用命令 >
filename将命令的输出发送到文件中。
实际上有两个不同的输出流连接到终端 - 正常的一个,称为“标准输出”并由 重定向>
,以及“标准错误”流,它让程序在出现问题时告诉你,即使它的正常输出正在进入一个文件而不是你的终端。如果您真的不想看到这些错误消息,但也希望它们进入终端,您可以使用>&
filename。
如果要将错误发送到自己的单独文件中,可以使用2>
*error_filename*; 只留下标准输出流,转到您的终端或您使用>
or发送它的任何地方|
。
你可以做的还有很多,比如在另一个命令需要文件名的任何地方使用一个命令的输出作为文件。有关更多详细信息,请参阅发布的链接 konsolebox。
它将命令的输入从键盘更改为该文件
大致相当于
cat run%d/run.m | matlab -nodesktop -singleCompThread
可能有一些我不知道的细微差别。但它基本上是将run%d/run.m
to的内容matlab
作为“键盘”输入(通过标准输入)发送。