如何在bash脚本中打开终端并继续运行脚本

如何在bash脚本中打开终端并继续运行脚本

我有一个 bash 脚本,它将键入命令并使用 xdotool 输入它们。唯一的问题是,在脚本开始时需要打开一个终端(通过脚本),然后继续运行脚本。该脚本将在 Kali Linux 上运行,因此它有 xfce4-terminal、xterm、bash 等

我尝试模拟 crtl alt t 但它不起作用

解释尝试#2:我的 bash 脚本模拟键盘输入并键入命令来自动执行任务。输入将进入终端。我需要在脚本的 stsrt 打开一个终端,当我这样做时,我可以想到它会使脚本暂停,直到终端关闭。我需要一种方法来打开终端并继续运行原始脚本而无需暂停,这是否清楚?

脚本src的图像: 在此输入图像描述

答案1

为了打开xfce4-terminal并继续运行脚本,您可以在后台启动命令,如下所示:

#!/bin/bash

xfce4-terminal &
sleep 5 # wait for terminal window to be ready

# continue with your script
xdotool type '...'

然而,我认为你应该实际上要做的就是重新考虑你的整个方法,因为实现你想要的目标看起来过于复杂! (除非有一些特殊要求你还没有提到)

如果您只想将命令作为脚本执行,可以直接将它们放在那里:

#!/bin/bash

airmon-ng stop wlan1mon
# note:
# no sleep required since the commands are executed one after another,
# waiting for the previous one to finish
airmon-ng check kill

# ...

如果您希望脚本的输出在窗口中可见,xfce4-terminal您只需手动打开一个窗口并在其中启动脚本即可。

如果您需要自动启动脚本 - 例如在启动时 - 但仍希望输出位于新窗口中,请使用 启动脚本xfce4-terminal -e /path/to/your/script.sh,请参阅https://askubuntu.com/q/46627/283843正如所提到的αГsнιm

如果您需要在其他命令中输入输入,您可以尝试简单地echo将其通过管道传递给它们:

echo "events.stream off" | bettercap --iface wlan1mon

或者,根据命令,找到更合适的方法来为其提供输入或使用相应的参数启动它,因为上述方法可能不适用于所有情况。即,bettercap您可以使用-eval范围

bettercap --iface wlan1mon -eval 'events.stream off; wifi.recon on'

相关内容