bash - 在 bash 脚本的第二个终端上执行命令
问题描述
我正在编写一个 bash 脚本,在 2 个不同的终端和原始终端上一次执行 2 个命令,等待 2 个终端完成,然后继续执行剩余的脚本。
我可以使用所需的命令打开另一个终端,但是原始终端似乎没有等待第二个终端完成并在继续执行其余脚本之前自动关闭。
#!/bin/bash
read -p "Hello"
read -p "Press enter to start sql installation"
for i in 1
do
xterm -hold -e mysql_secure_installation &
done
echo "completed installation"
解决方案
使用 Bashwait
命令使调用脚本等待后台进程完成。您的for
循环意味着您可能会并行启动多个后台进程,即使在您的问题中只有一个。没有任何选项wait
将等待所有选项。
我想知道您为什么要启动进程xterm
而不是直接启动进程。
推荐阅读
- javascript - 事件和事件处理是 JavaScript 语言本身的固有部分吗?
- sql-server - 将变量传递给另一个案例
- python - 为什么我的 KernelReg.bw 为负数?它不应该是积极的吗?我的代码有什么问题?
- c# - 仅当执行参数相同时,如何阻止 Web 应用程序中的进程?
- fabricjs - 擦除 Fabric JS 上的线条
- javascript - 如何将 HTTP get 请求的响应保存到 Angular 7 中的 json 文件中?
- sql-server - 总销售额,每个日期的 MTD 销售额
- microservices - 如何使用 vert.x 对运行在不同服务器上的两个微服务进行集群?
- java - Java ResourceBundle.getBundle 如何加载属性文件?
- spring-mvc - 将列表对象从 thymeleaf 发送到控制器