我想测试我的服务器程序,(我叫它A)。所以当A被这个命令执行时

$VALGRIND ./test/server_tests 2 >>./test/test.log

,它被阻止侦听连接。之后,我想使用

nc 127.0.0.1 1234 < ./test/server_file.txt

因此A可以被解除阻止并继续。问题是我必须在两个不同的终端中手动键入这些命令,因为它们都阻塞了。我还没有找到一种在单个shell脚本中自动执行此操作的方法。任何帮助,将不胜感激。

分析解答

您可以使用&在后台运行该过程,然后继续使用相同的shell

$VALGRIND ./test/server_tests 2 >>./test/test.log &
nc 127.0.0.1 1234 < ./test/server_file.txt

如果您希望服务器即使在关闭终端后仍能继续运行,则可以使用nohup:

nohup $VALGRIND ./test/server_tests 2 >>./test/test.log &
nc 127.0.0.1 1234 < ./test/server_file.txt

有关更多参考:https://www.computerhope.com/unix/unohup.htm