gpt4 book ai didi

bash - 我如何在 BASH 脚本的新终端中启动命令

转载 作者:行者123 更新时间:2023-11-29 08:47:43 26 4
gpt4 key购买 nike

我的 bash 脚本读取了一些变量,然后在我的家庭网络上运行 airodump。我想保持运行 airodump 的窗口并打开一些新终端以在 airodump 屏幕打开时运行其他命令进行网络发现(这样我可以看到结果)。
现在我所拥有的看起来像这样(为简洁起见进行了编辑):

#!/bin/bash
read -p "Enter the channel: $channel"
airomon-ng start wlan0 $channel,$channel
airodump-ng -c $channel,$channel mon0 &&
terminator -e netstat -ax &&
terminator -e nmap 192.168.1.1

使用整个终端的第一个命令 (airodump) 启动正常,我可以看到网络,但它只是停留在那个屏幕上。如果我按 ctrl+c 然后它会返回提示,但我可以看到错误:用法:终止符 [选项] 错误没有这样的选项
我希望 netstat 和 nmap 命令出现并保留在它们自己的终端窗口中,我该怎么做?

最佳答案

终端窗口是由一个独立于内部运行的命令的程序生成的。尝试以下变体之一:

xterm -e airomon-start wlan0 "$channel","$channel" &

gnome-terminal -x airomon-start wlan0 "$channel","$channel" &

konsole -e airomon-start wlan0 "$channel","$channel" &

选择调用您喜欢的终端程序的命令。您必须为要在其自己的窗口中运行的每个 命令执行此操作。此外,您需要在每个此类命令行的末尾使用单个 &——而不是双 &&——它们做完全不同的事情。你脚本的最后一行应该是

wait

这使得它不会从所有终端下退出,可能导致它们全部死亡。

强制性的切线 shell 脚本吹毛求疵:始终将 shell 变量使用放在双引号内,除非您知道一个事实您需要在特定用途上发生分词。

关于bash - 我如何在 BASH 脚本的新终端中启动命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5436899/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com