我的 bash 脚本在执行时不显示控制台窗口

我的 bash 脚本在执行时不显示控制台窗口

我制作了一个 bash 脚本,它接受用户的输入:

#!/bin/bash
# mnthere - mounts virtual box share in current working directory
echo Enter the source share name:
readline NAME
sudo -- mount -t vboxsf -o rw,uid=1000,gid=1000 $NAME $0

但是当我双击它时,什么也没有发生。它在后台执行,可能会因错误而失败。我需要配置它以显示该窗口,我该怎么做?这与我使用的 XFCE4 桌面环境有关吗?

答案1

如果您不想修改启动器,可以在脚本的开头检查它是否正在终端中执行。如果不是,请打开终端并在那里重新启动脚本。在脚本的顶部:

if [ ! -t 1 ]; then
    args=''
    for arg in "$@"; do
        args="$args \"${arg//\"/\\\"}\""
    done
    xfce4-terminal -e "$0 $args"
    exit 0
fi

然后,如果有任何终端输出要显示给用户,请将其添加到底部:

read -n1 -u1 -rp 'Press any key to close this window.'

答案2

启动 xterm 运行您的脚本,而不是仅仅运行您的脚本,并添加一个read命令,例如停止输出并能够读取。

gnome-terminal -x your_script

答案3

如果您编辑启动器(右键单击,选择属性,然后单击编辑按钮),选项之一将是“在终端中运行”复选框。

检查一下,您的脚本现在将在终端中运行。

相关内容