shell 是否像其他命令一样具有相同的标准输入、标准输出、标准错误?

sha*_*ant 3 shell bash input

例如,bash 位于 /bin/bash 下,这意味着它是一个命令,每个命令都有三个 (0,1,2) 孔:标准输入、标准输出、标准错误。

这对于 shell 是否也是 100% 正确的,还是因为 shell 作为命令或进程的特殊含义而有什么不同?

Bar*_*mar 6

它与任何其他程序相同。这允许您像其他程序一样重定向和管道 I/O。

echo "cat filename" | bash
Run Code Online (Sandbox Code Playgroud)

将在从管道读取其标准输入cat filename时执行该命令bash

bash -c "echo foo" > filename
Run Code Online (Sandbox Code Playgroud)

将执行echo foo命令,输出将被重定向到文件。

在 Unix 上,shell 没有什么“特别之处”。它只是一个普通程序,其主要目的是执行其他程序。