跳转至主要内容

如果你在VOS上使用过POSIX shell("bash"),那么你知道你可以运行各种POSIX命令,并使用bash提供的所有技巧,如输入和输出重定向。 但是你知道你可以用这些同样的功能来使用许多VOS命令吗?

例如,如果你想把VOS的"list"命令和POSIX的"more"命令结合起来,在bash中键入以下命令行。

列表|更多

如果你想把list命令的输出运行到一个文件中,比如说。

列表 >list.txt

这是因为VOS和POSIX都使用相同的底层VOS端口来向终端或批处理文件写入输出。 VOS的"default_output"端口相当于POSIX的"stdout"文件。 而VOS"default_input"端口相当于POSIX"stdin"文件。 最后,VOS的"terminal_output"端口,也就是VOS写的是错误信息的地方,和POSIX的"stderr"文件是一样的。

这是一个在VOS命令上使用bash输入重定向的例子。 创建一个名为"line_edit.txt"的文件,其中包含以下2行内容。

打印 *
退出

然后,你可以对着你的缩写文件运行这些 line_edit 请求,如下所示。

line_edit abbreviations <line_edit.txt

请注意,bash会在一个新的子进程中运行每一条命令,子进程会继承父进程的所有I/O附件和所有状态,所以这不是问题。 子进程会继承父进程的所有I/O附件和所有状态,所以这对大多数命令来说都不是问题。 然而,任何修改进程环境的VOS命令都不会如你所愿。 例如,从bash内运行set_library_paths命令,会改变子进程的库路径;而这个进程在命令终止后就会被销毁。 如果你想改变bash搜索的路径,你必须使用POSIX方法进行改变,也就是改变PATH环境变量。

希望你觉得这些技术有用。

© 2024Stratus Technologies.