Bash 将stdin分配给文件也会将stdout分配给该文件
我执行了以下bash脚本:Bash 将stdin分配给文件也会将stdout分配给该文件,bash,exec,stdout,stdin,Bash,Exec,Stdout,Stdin,我执行了以下bash脚本: #!/bin/env bash exec 0<log 我以为我是在把“ls”传递给stdin。因为我没有重新分配stdout,所以我还希望在终端中看到“ls”命令的结果(我通常在这里看到stdout)。但是,我在日志文件中看到了“ls”的输出。为什么stdout在日志文件中而不是终端中?ls会写入为标准输出提供的任何文件。如果没有重定向,这就是它从其父级(脚本)继承的任何文件。通过重定向,您可以显式地为标准输出提供文件log 这与文件log可能用于的任何其他用
#!/bin/env bash
exec 0<log
我以为我是在把“ls”传递给stdin。因为我没有重新分配stdout,所以我还希望在终端中看到“ls”命令的结果(我通常在这里看到stdout)。但是,我在日志文件中看到了“ls”的输出。为什么stdout在日志文件中而不是终端中?
ls
会写入为标准输出提供的任何文件。如果没有重定向,这就是它从其父级(脚本)继承的任何文件。通过重定向,您可以显式地为标准输出提供文件log
这与文件log
可能用于的任何其他用途无关
ls > log