在 bash 脚本中创建多个终端并继续执行命令?
Creating multiple terminals in bash script and keep executing commands?
我创建了一个 bash 脚本来打开多个终端。但是,在打开所有终端并具有 运行 第一个命令后,我无法访问它们并在我选择的终端上执行我想要的命令。例如,在我发布 运行s 的代码之后,我想在标题为“node5”的终端上执行 运行 insert Hi, 1
命令。我可以这样做吗?我当前的代码如下:
#!/bin/bash
printf "$FBOLD\nPlease enter the port: $FREG"
read invalue
xterm -title "node1" -hold -e "node index.js localhost:${invalue}" &
sleep 1
xterm -title "node2" -hold -e "node index.js localhost:${invalue}" &
sleep 1
xterm -title "node3" -hold -e "node index.js localhost:${invalue}" &
sleep 1
xterm -title "node4" -hold -e "node index.js localhost:${invalue}" &
sleep 1
xterm -title "node5" -hold -e "node index.js localhost:${invalue}" &
sleep 1
xterm -title "node6" -hold -e "node index.js localhost:${invalue}" &
sleep 1
xterm -title "node7" -hold -e "node index.js localhost:${invalue}" &
sleep 1
xterm -title "node8" -hold -e "node index.js localhost:${invalue}" &
sleep 1
xterm -title "node9" -hold -e "node index.js localhost:${invalue}" &
sleep 1
编辑:为了更清楚。我想通过 bash 脚本执行命令,因为我想在每个终端中执行数百次插入。所以这个过程应该是自动化的。
可以使用xdotool来自动化,这里有一个例子来适配:
#!/bin/bash
xterm -title node1 -hold -e 'bash -c "read; echo REPLY=$REPLY"' &
sleep 1
xdotool windowfocus --sync $(xdotool search --name node1) # set focus on xterm with title `node1`
xdotool type "Hello, World!"
xdotool key Return
如果您使用 ubuntu,请按 apt install xdotool
安装。
我创建了一个 bash 脚本来打开多个终端。但是,在打开所有终端并具有 运行 第一个命令后,我无法访问它们并在我选择的终端上执行我想要的命令。例如,在我发布 运行s 的代码之后,我想在标题为“node5”的终端上执行 运行 insert Hi, 1
命令。我可以这样做吗?我当前的代码如下:
#!/bin/bash
printf "$FBOLD\nPlease enter the port: $FREG"
read invalue
xterm -title "node1" -hold -e "node index.js localhost:${invalue}" &
sleep 1
xterm -title "node2" -hold -e "node index.js localhost:${invalue}" &
sleep 1
xterm -title "node3" -hold -e "node index.js localhost:${invalue}" &
sleep 1
xterm -title "node4" -hold -e "node index.js localhost:${invalue}" &
sleep 1
xterm -title "node5" -hold -e "node index.js localhost:${invalue}" &
sleep 1
xterm -title "node6" -hold -e "node index.js localhost:${invalue}" &
sleep 1
xterm -title "node7" -hold -e "node index.js localhost:${invalue}" &
sleep 1
xterm -title "node8" -hold -e "node index.js localhost:${invalue}" &
sleep 1
xterm -title "node9" -hold -e "node index.js localhost:${invalue}" &
sleep 1
编辑:为了更清楚。我想通过 bash 脚本执行命令,因为我想在每个终端中执行数百次插入。所以这个过程应该是自动化的。
可以使用xdotool来自动化,这里有一个例子来适配:
#!/bin/bash
xterm -title node1 -hold -e 'bash -c "read; echo REPLY=$REPLY"' &
sleep 1
xdotool windowfocus --sync $(xdotool search --name node1) # set focus on xterm with title `node1`
xdotool type "Hello, World!"
xdotool key Return
如果您使用 ubuntu,请按 apt install xdotool
安装。