gpt4 book ai didi

linux - 如何在 linux 中运行外部程序后返回 bash 脚本菜单?

转载 作者:太空宇宙 更新时间:2023-11-04 11:46:37 24 4
gpt4 key购买 nike

我正在尝试为 Ubuntu 服务器上的备份后端构建一个简单的菜单系统。菜单只会有一些简单的命令;其中之一是启动 htop。我希望能够从 bash 脚本菜单启动 htop,查看统计信息,关闭 htop,然后它应该返回菜单。然后我应该能够选择任何其他选项等等。我会链接一些代码

#!/bin/bash
HEIGHT=18
CHOICE_HEIGHT=10
WIDTH=78
BACKTITLE="SYSTEM MENU - BACKUP BACKEND"
TITLE="[ M A I N - M E N U ]"
MENU="Tasks:"

OPTIONS=(
Htop "Monitor server resources "
AvailableHDDS "List installed HDDs "
CheckRAIDZ "Check RAIDz pool status "
CreateDataPool "Create new data pool "
Reboot "Reboot the System "
Shutdown "Shutdown the System "
Logout/Exit "Logout the Session "
Update "Update & Upgrade & autoRemove "
Edit "Edit this script "
Shell "Exit to Shell "
)

CHOICE=$(whiptail --clear \
--backtitle "$BACKTITLE" \
--title "$TITLE" \
--menu "$MENU" \
$HEIGHT $WIDTH $CHOICE_HEIGHT \
"${OPTIONS[@]}" \
2>&1 >/dev/tty)

clear
case $CHOICE in
Htop)
exec htop
;;

AvailableHDDS)
ls /dev/sd*
;;

Shell)
exit
;;
esac

当脚本运行并且我选择 htop 选项时,htop 正常打开,当我按 F10 退出 htop 时,我返回到控制台,我必须重新运行脚本才能返回到原始菜单。

例如,当我运行 AvailableHDDS 选项时,它会显示信息,但会关闭菜单。

最佳答案

exec: exec [-cl] [-a name] file [redirection ...]
Exec FILE, replacing this shell with the specified program.

如果您使用 exec,您的 shell 将替换为 FILE,因此您将无法返回到该 shell。

然后,在您的情况下,您不需要 exec

关于linux - 如何在 linux 中运行外部程序后返回 bash 脚本菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57419523/

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