无需“立即关闭”的终端/bash 脚本的快捷方式

无需“立即关闭”的终端/bash 脚本的快捷方式

我在 中创建了一个桌面条目~/.local/share/applications。它看起来类似于以下内容:

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=Crontona Server
GenericName=CA Server
Comment=BDAF server for Crontona
Exec=bash "/usr/local/crontona/run.sh"
Icon=/usr/local/crontona/app.ico
Terminal=true
Type=Application

它显示在 Unity 启动器和所有内容中,但每当我单击它时,终端都会弹出但立即关闭。我使用“bash ./.....run.sh”完全没有问题,但通过菜单却没有成功。知道为什么会发生这种情况吗?

这是 run.sh 文件的内容:

#!/bin/bash
./corona_run -prot tcp +maxcon 16

答案1

将该命令添加read x为 run.sh 中的最后一行。此读取将导致命令窗口保持打开状态,直到您按回车键。如果显示任何消息,这将提供时间阅读它们。


read是关键。这是一个 shell 脚本(我更喜欢它而不是 bash,尽管 bash 正变得越来越流行)。顺便说一句,末尾的 .sh 表示 shell 脚本,而不是脚本。您可以将启动器 Exec 选项更改为:

Exec="/usr/local/crontona/run.sh"

并使用以下 run.sh 脚本...

#!/bin/sh
./corona_run -prot tcp +maxcon 16
echo -n Press enter to end...
read x
echo Ending Now\!

注意,我在结尾处省略了 !。除非您在终端内运行脚本并希望它回显执行,否则最后一行是不需要的。这样,如果终端出现并且脚本在终端内运行,则脚本将不会退出,直到您按下 Enter 键,因此终端在您准备好之前无法关闭。

相关内容