exec -t 无效

exec -t 无效

我制作了一个安装.run文件的 rpm,每当我运行 rpm 并且 rpm 尝试执行 .run 文件时,我总是收到exec -t is an invalid option以下代码行的错误

if test `echo "$0" | cut -c1` = "/"; then # Spawn a terminal!
                    exec $XTERM -title "$label" -e "$0" --xwin "$initargs"
                else
                    exec $XTERM -title "$label" -e "./$0" --xwin "$initargs"

但是,如果我.run单独运行它,它安装得很好。为什么会发生这种情况?另外,这段代码中的 if 语句是做什么的?

答案1

建议#1

我认为您不能像这样运行 XTERM,因为安装时的 RPM 是在与拥有桌面的用户不同的用户 ID(根)下运行的。

为此,您至少需要xhost +在主桌面上以用户 ID 身份执行 a,然后确保$DISPLAY在对 XTERM 的调用中设置环境变量。像这样的事情可能会起作用:

exec DISPLAY=:0.0 $XTERM .....

我认为 XTERM 也可以进行-display类似的转换,但我目前手头没有它。

建议#2

如果您遇到“exec -t 是无效选项”,那么我会怀疑变量$XTERM未设置,从而导致命令exec -title ...被执行并失败。

例子
$ exec -title "blah" -e "bash"
bash: exec: -t: invalid option
exec: usage: exec [-cl] [-a name] [command [arguments ...]] [redirection ...]

但是,当我设置$XTERM并重试时,它会起作用:

$ XTERM=xterm
$ exec $XTERM -title "blah" -e "bash"

                 SS#1

相关内容