bash - 如何在 bash 上同时运行 2 个命令
问题描述
我想测试我的服务器程序,(我们称之为A)我刚做的。所以当 A 被这个命令执行时
$VALGRIND ./test/server_tests 2 >>./test/test.log
,它被阻止监听连接。之后,我想使用连接到A中的服务器
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
推荐阅读
- android - Android Room 数据库 RxAndroid,异常:java.lang.IllegalStateException:无法访问主线程上的数据库,因为
- reactjs - 如何在 Reactjs 中从 Firebase Firestore 导入 FieldValue.increment()?
- r - 如何在 gganimate 中固定绘图的宽度?
- arrays - 从对象数组中删除重复对象
- javascript - ncaught TypeError:无法读取 null 的属性“getElementsByTagName”
- regex - 以下代码需要正则表达式
- javascript - 用 JSDoc 描述被破坏的属性
- sql - 如何在 Sql Server 中查找连续的日期范围?
- android - 在 Android Studio 的 SDK 工具中找不到 NDK
- python - 在矩阵和对角矩阵之间进行矩阵乘法的更快方法?