#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
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