exec -t는 효과가 없습니다

exec -t는 효과가 없습니다

설치 파일의 rpm을 만들었고 .runrpm을 실행할 때마다 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

설치 시 RPM이 데스크톱을 소유한 사용자와 다른 사용자 ID(루트)로 실행되기 때문에 XTERM을 이와 같이 실행할 수 없다고 생각합니다.

이렇게 하려면 최소한 xhost +기본 데스크톱에서 사용자 ID로 실행한 다음 $DISPLAYXTERM 호출에 환경 변수가 설정되어 있는지 확인해야 합니다. 다음과 같이 작동할 수 있습니다.

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

관련 정보