【问题标题】:Bash script hangs until Enter is pressed. Only shows new mac address, no message boxBash 脚本挂起,直到按下 Enter。只显示新的mac地址,没有消息框
【发布时间】:2016-06-06 04:47:07
【问题描述】:

我正在学习 bash,我想自动化一系列我经常使用的命令。在这种情况下,它是 macchanger,并重新启动网络管理器。

#!/bin/bash

#Automated macchanger script

wlanDOWN=$(ifconfig wlan0 down)

change_mac=$(macchanger -r wlan0)

wlanUP=$(ifconfig wlan0 up)

verify=$(macchanger --show wlan0)

network_connect=$(sudo service network-manager restart)

confirmation=$(dialog --msgbox "Change complete" 10 30)

printf "%s\n" "$wlanDOWN"
printf "%s\n" "$change_mac"
printf "%s\n" "$wlanUP"
printf "%s\n" "$verify"

printf "%s\n" "To return to permanent mac address type 'macchanger --permanent <interface name>' "

printf "%s\n" "$network_connect"

printf "%s\n" "$confirmation"

当我执行这个脚本时

./hide_me

它只是挂起,直到我第二次按 Enter,然后它只显示新的 mac 地址并且不显示我的消息框。任何指针?谢谢朋友。

【问题讨论】:

  • while [ kill -0 "$pid" ] 是错误的,你的意思可能是while kill -0 "$pid"。如果您需要更多帮助,您应该发布一个完整的示例。
  • 是的,对不起。我以为我在提交之前粘贴了代码。它现在在那里。 :D
  • 我删除了括号,现在我得到:第 32 行:kill: `': not a pid or valid job spec
  • 我不太了解dialog 或如何正确使用它,不过我想它有一个庞大的手册页。您可能应该写一个 minimal reproducible example 来说明您遇到的具体问题。或者,您可以保留它 oldskool 并让您的 bash sea leg 编写简单的控制台脚本而不是文本 GUI,上帝希望这样的事情是这样的:)
  • 是的,但是在 debian/ubuntu 上设置 MySQL 等类似的东西是一种例外(并且非常特定于那些发行版),你典型的 shell 可移植脚本通常只是做它的事情(而潜在的呼应状态)并继续前进。所以,一般来说,从那个开始。如果您想添加这些特定于发行版的类似 GUI 的功能,那也可以,但是请尝试隔离与它们相关的特定问题并编写有关它们的问题。顺便说一句,如果您找到满意的答案,您可以回答自己的问题。

标签: bash pid


【解决方案1】:

删除了对话框,它完成了它应该做的事情。

#!/bin/bash

#Automated macchanger script

wlanDOWN=$(ifconfig wlan0 down)

change_mac=$(macchanger -r wlan0)

wlanUP=$(ifconfig wlan0 up)

verify=$(macchanger --show wlan0)

network_connect=$(sudo service network-manager restart)

confirmation=$(dialog --msgbox "Change complete" 10 30)

printf "%s\n" "$wlanDOWN"
printf "%s\n" "$change_mac"
printf "%s\n" "$wlanUP"
printf "%s\n" "$verify"

printf "%s\n" "To return to permanent mac address type 'macchanger --permanent <interface name>' "

printf "%s\n" "$network_connect"

我今天学到了一些东西:K.I.S.S. ;-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    • 2014-04-07
    • 2010-09-05
    相关资源
    最近更新 更多