exec -t n'est pas valide

1

J'ai créé un rpm qui installe un .runfichier et chaque fois que j'exécute le rpm et que le rpm essaie d'exécuter le fichier .run, l'erreur ne cesse de se produire qu'aux exec -t is an invalid optionlignes de code suivantes

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"

Cependant, si je lance le tout .runseul, il s'installe bien. Pourquoi cela pourrait-il se passer? En outre, que fait l’instruction if dans ce code?

jgr208
la source
Quelle coquille utilisez-vous? Aucune de ces options n'est disponible sur l'exec intégré de mon bash. Quoi qu’il en soit, dans la plupart des programmes, les options longues nécessitent deux tirets, pas un. Est-ce que ça marche si vous utilisez --title "$label"?
terdon
si je lance le fichier .run à partir de la ligne de commande, cela fonctionne avec exec $XTERM -title "$label" -e "$0" --xwin "$initargs. Cependant, lorsque le rpm exécute le fichier, cela ne fonctionne pas, ce qui est bizarre.
Jgr208
Je comprends que. C'est pourquoi je vous ai posé deux questions. Alors, quel shell utilisez-vous et que se passe-t-il si vous l'essayez à la --titleplace?
terdon
J'utilise bash et je ne peux pas l'éditer une fois qu'il est dans le rpm car celui-ci aspire le fichier mais je ne peux pas l'essayer depuis la ligne de commande
jgr208
3
Il semble qu’il XTERMn’existe pas dans l’environnement dans lequel rpm exécute des commandes, il est donc exécuté exec -title ....
Mark Plotnick

Réponses:

1

Suggestion n ° 1

Je ne pense pas que vous puissiez exécuter un XTERM comme celui-ci car le RPM, lors de son installation, est exécuté sous un ID utilisateur (racine) différent de celui du poste de travail.

Pour que cela fonctionne, vous devez au moins effectuer un xhost +ID utilisateur sur votre bureau principal, puis vous assurer de définir la $DISPLAYvariable d'environnement dans cet appel sur XTERM. Quelque chose comme ça pourrait marcher:

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

Je pense que XTERM peut également prendre la décision -displayde faire quelque chose de similaire, mais je ne l’ai pas sous la main pour le moment.

Suggestion n ° 2

Si vous rencontrez un "exec -t est une option non valide", je soupçonne que la variable $XTERM,, devient non définie, ce qui entraîne l' exec -title ...exécution de la commande et son échec.

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

Cependant, lorsque je configure $XTERMet réessaye, cela fonctionne:

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

                 SS n ° 1

slm
la source
En fait, j’ai cette fenêtre sur l’un de mes messages virtuels. J’en ai également une qui doit se conformer à DISA STIGS et qui, à mon avis, pourrait être à l’origine du problème. Puisqu'il fonctionne également sur le niveau d'exécution 3, mais pas un niveau d'exécution graphique.
jgr208