我有一个带有一些用户输入的 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)中,脚本会进入下一步。
这不是办法。相反,只需让用户通过键入命令在终端中启动您的脚本。或者,为了方便和可见的用户访问,让您的脚本通过 .desktop 文件启动。这将作为一个项目出现在应用程序菜单中,或者可以放在桌面上。如果您包含“Terminal=true”行,可执行文件(您的脚本)将自动在终端模拟器中执行。