在父进程中显示子shell的输出

Displaying output of subshell in parent process

echo "echo in parent process"

bash

echo "echo in subshell"

exit

当我从终端执行此代码块时 (./test.sh)

我只看到 "echo in parent process" 作为输出,但我也想看到来自 subshel​​l 的输出。查看来自 subshell/child 进程的输出的方法是什么。

你永远不会看到第二个命令,因为它还没有发生。相反,您只是以交互方式再次启动 bash。如果您手动输入 exit,您会注意到您现在位于内部 shell 中。

$ ./test.sh 
echo in parent process
$ exit
echo in subshell

您可能想做的是:

#!/bin/bash

echo "echo in parent process"
bash -c 'echo "echo in child process"'