如果条件不起作用则使用 Bash 脚本

如果条件不起作用则使用 Bash 脚本

我有一个带有一些用户输入的 bash 脚本。因此,为了顺利运行,必须在终端仿真器中运行(以便用户可以进行输入)。因此,我在脚本的第一行写了以下命令:

#!/bin/bash

#if the script is running in background it gets visable
if ! x-terminal-emulator
    then
        path=$(pwd) #read current path
        me="$(basename "$(test -L "$0" && readlink "$0" || echo "$0")")" #read the name of the bash script
        x-terminal-emulator -- .$path/$me
        exit
fi

.
.
.

它应该做什么:因此,当它在终端仿真器中运行时,它应该忽略语句并跳转到脚本的下一步,但是当它在后台运行时,它应该打开一个新的终端仿真器并在那里运行脚本。

它的作用:但是当我在终端仿真器(1)中运行它时,它会打开一个新的终端仿真器(2),其中什么也没有发生,而在原始终端仿真器(1)中,脚本会进入下一步。

答案1

这不是办法。相反,只需让用户通过键入命令在终端中启动您的脚本即可。或者,为了方便和可见的用户访问,通过 .desktop 文件启动您的脚本。这将作为应用程序菜单中的一项出现,或者可以放在桌面上。如果您包含行“Terminal=true”,则可执行文件(您的脚本)将自动在终端仿真器中执行。

相关内容