Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/12/2014, à 19:47

elkev

Lancer une commande redirigée vers /dev/null en une ligne? [RESOLU]

Bonjour,

J'écris puisque j'ai un souci avec kate, puisque quand je l'installe chez moi, il suffit que j'ouvre quoi que ce soit dedans pour que kate me pollue et m'innonde littéralement de messages dont tout le monde se fiche dans le terminal, du type


ate(17491)/kate-filetree KateFileTreePluginView::viewChanged: END!
kate(17491)/kate-filetree KateFileTreeModel::documentNameChanged: END!
kate(17491)/kate-filetree KateFileTreePluginView::viewChanged: BEGIN!
kate(17491)/kate-filetree KateFileTreeProxyModel::docIndex: !
kate(17491)/kate-filetree KateFileTreeModel::docIndex: BEGIN!
kate(17491)/kate-filetree KateFileTreeModel::docIndex: END!
kate(17491)/kate-filetree KateFileTreePluginView::viewChanged: selected doc= KateDocument(0x927c438) QModelIndex(0,0,0x955d780,KateFileTreeProxyModel(0x9353658) )
kate(17491)/kate-filetree KateFileTreePluginView::viewChanged: display= "caca.c"
kate(17491)/kate-filetree KateFileTreeModel::documentActivated: BEGIN!
kate(17491)/kate-filetree KateFileTreeModel::documentActivated: adding viewHistory ProxyItem(0x9499210,0x973cff0,0,KateDocument(0x927c438) , "/home/elkevn/Bureau/caca.c" )
kate(17491)/kate-filetree KateFileTreeModel::updateBackgrounds: BEGIN!
kate(17491)/kate-filetree KateFileTreeModel::updateBackgrounds: m_editHistory contains  0  elements
kate(17491)/kate-filetree KateFileTreeModel::updateBackgrounds: END!
kate(17491)/kate-filetree KateFileTreeModel::documentActivated: END!
kate(17491)/kate-filetree KateFileTreePluginView::viewChanged: END!
uint DBusMenuExporterDBus::GetLayout(int, int, const QStringList&, DBusMenuLayoutItem&): Condition failed: menu



Bref, vous aurez compris, assez déagréable. j'ai donc trouvé une solution pas très finotte mais de mon niveau de connaissances (assez bas donc), c'est à dire

kate monfichier &>/dev/null

et là , évidemment, plus de pollution. seulement, je crois que beaucoup d'entre vous me comprendront, c'es terriblement longà taper! terriblement plus long que "kate monfichier".
D'aucuns diront, "change d'éditeur", et ils auront raison.

En fait, du coup, il s'agit plus d'une question de curiosité d'ordre général plutôt que d'un vrai problème, mais j'aimerais, comme le dit le titre, pouvoir taper "kate  monfichier", soit avec un alias soit avec un script quele $PATH lancerait avant de lancer kate pour de vrai; bref, quelque chose, pour ne pas devoir taper ensuite le &>/dev/null.

j'ai trouvé une solution avec un script tout simple, mais qui n,est pas très commode


read nom
kate $nom &>dev/null

simple, ça marche mais ça a un double inconvénient:
- ça se lance en 2 étapes
- pas de complétion automatique du nom de fichier du coup

bref, si vous avez des idées de quoi faire, je suis ouvert! avec un alias je ne crois pas qu'on puisse le faire, puisqu'il faudrait que le shell interprete par exemple "kate  monfichier.c"  comme étant en réalité "kate monfichier.c &>/dev/null"..

Merci beaucoup de votre aide!

Joyeuses fêtes à tous par ailleurs wink

Dernière modification par elkev (Le 21/03/2015, à 22:05)

Hors ligne

#2 Le 24/12/2014, à 19:58

pingouinux

Re : Lancer une commande redirigée vers /dev/null en une ligne? [RESOLU]

Bonsoir,
Tu peux mettre ceci dans ton script, que tu peux appeler mon_kate (par exemple)

kate "$1" &>dev/null

L'appel se fait ainsi (la complétion se fera)

./mon_kate fichier

Tu peux aussi définir une fonction.

mon_kate() { kate "$1" &>/dev/null; }

Édité : Correction

Dernière modification par pingouinux (Le 24/12/2014, à 20:18)

Hors ligne

#3 Le 25/12/2014, à 10:18

serged

Re : Lancer une commande redirigée vers /dev/null en une ligne? [RESOLU]

... Et remplacer $1 par $* pour avoir tous les arguments (par exemple pour éditer plusieurs fichiers à la fois).

Personnellement (j'utilise gedit, mais c'est pareil) j'ai deux fonctions e et se qui lancent gedit (ou un autre) normalement ou en sudo.

# dans .bashrc
# test présence environnement graphique
# pas d'env. graphique : vim, sinon gedit
# On pourrait faire un choix plus grand en fonction de l'environnement (kate, pluma etc.)
if [ -z $DISPLAY ]
 then EDITOR=vim
 else  EDITOR=gedit
fi

e() {
 if [ -z "$DISPLAY" ]
   then $EDITOR  "$*"
# & à la fin pour rendre la main immédiatement
   else $EDITOR "$*" &>dev/null & 
   fi
 }

se() {
 if [ -z "$DISPLAY" ]
   then sudo $EDITOR  "$*"
   else
        gksudo $EDITOR "$*" &>dev/null &
   fi
 }

LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#4 Le 25/12/2014, à 10:49

pingouinux

Re : Lancer une commande redirigée vers /dev/null en une ligne? [RESOLU]

@serged : S'il y a plusieurs fichiers sur la ligne de commande, c'est "$@" qu'il faut utiliser (à la place de "$*").

Hors ligne