web-dev-qa-db-fra.com

Sortie du terminal du programme d'interface graphique de silence

J'exécute une fonction zsh pour ouvrir un fichier .tex dans vim, tout en ouvrant le fichier .pdf associé dans evince. J'utilise actuellement xdotool pour ouvrir un nouvel onglet dans la fenêtre actuelle de gnome-terminal, puis j'exécute vim dans cet onglet. Je préfère désactiver la sortie de ligne de commande de evince et ouvrir vim dans la fenêtre actuelle.

Malheureusement, avec une redirection standard telle que evince name.pdf &> /dev/null, evince ne s'ouvre pas graphiquement. Puis-je exécuter un programme d'interface graphique à partir d'un terminal sans avoir sa sortie/erreur standard dans ce terminal?

La fonction est ci-dessous:

edittex () { 
    # open a new terminal tab in current terminal
    WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}')
    xdotool windowfocus $WID
    xdotool key ctrl+shift+t
    wmctrl -i -a $WID
    # open vim in the new terminal tab
    xdotool type "vim [email protected]"
    xdotool key KP_Enter 
    # open evince in old terminal tab
    evince "[email protected]" 
}

Usage: edittex filename, en supposant que les fichiers .pdf et .tex sont nommés nomfichier.pdf et nomfichier.tex.

4
Langston

Pour rediriger niquement stderr of evince vers /dev/nullet envoyez-le en arrière-plan en même temps, vous devez spécifier:

evince name.pdf 2> /dev/null &

Où :

  • evince name.pdf 2> redirige la sortie des erreurs uniquement
  • /dev/null redirige la sortie vers le périphérique null
  • & envoie le programme en arrière-plan
5
Fabby