# [Bash]:  processus en background > /dev/null (résolu)

## bulki

Salut tout le monde,

je n'arrive pas à enlever l'output, quand je fais ça par exemple:

```

> emacs hello.txt

[2] 5063 <--------------- Je veux pas que ça se display !!

```

Bref, enlever le [2] 5063 qui apparait tout le temps. J'ai essayé de piper un peu dans tous les sens, mais ça n'a rien donné.

Une idée ? 

Merci

EDIT: je veux encore moins qu'il me dise "DONE" quand c'est fini, merci  :Smile: Last edited by bulki on Mon Nov 16, 2009 1:56 pm; edited 3 times in total

----------

## rg421

Salut,

Je ne sais pas si ça t'aide mais ça n'arrive qu'en mode interactif. Donc avec un sous-shell...

```
~/test $ ls

fichier

~/test $ ls &

[1] 6379

~/test $ fichier

[1]+  Done                    ls --color=auto

~/test $ (ls &)

~/test $ fichier

~/test $ 
```

Le fait de passer par un sous-shell va t'enlever les messages. Pareil sur un script

```
~/test $ echo -e '#!/bin/bash\nls &' >list.sh

~/test $ chmod +x list.sh 

~/test $ ./list.sh 

~/test $ fichier  list.sh

~/test $ 
```

----------

## geekounet

D'après le man bash, un set +o monitor désactive (oui le + désactive, c'est parfaitement logique bash...) le mode monitor qui cause l'affichage des jobs. Après avoir testé, l'option monitor se retrouve bien désactivée (vérifiable avec set -o) mais ça continue d'afficher le job... Vraiment bien foutu ce shell...  :Smile: 

Sinon avec zsh, unsetopt monitor (ou setopt nomonitor) désactive bien le mode monitor et le job ne s'affiche pas. (et la commande est logique  :Wink:  )

----------

## bulki

Excellent, merci pour vos réponses

----------

## bulki

En fait, je profite de ce thread pour poser une autre question relative à Bash. En fait, je me demandais si c'était possible que quand on exécute une commande, il ne retourne pas à la ligne d'en dessous, mais à la même ligne.

Exemple:

```

> ls

[blabla]

> # Voilà, retourné à la ligne

```

Mais plutot:

```

>             <----------- le ls a été "mangé" par le prompt suivant

[blabla]

```

L'idée c'est que j'ai un espace très limité et j'aimerais bien le maximiser. Est-ce que c'est possible de changer de comportement facilement ?

Merci bien  :Smile: 

----------

## rg421

Ce n'est pas une question relative à bash mais relative au terminal   :Wink:   Bash ne fait qu'interpréter les commandes, leur disposition dans un terminal ne relève pas de lui.

Il faut te tourner vers la commande tput. C'est elle qui communique (de façon sommaire) avec les tty. Attention, les standards sont rarement respecté dans ce domaine. A toi de tester.

La littérature se trouve sous

```
$ man tput

$ man 5 terminfo
```

Par exemple, dans un vt gnome le code

```
$ ls && tput cup 0 0 && tput el
```

 fait ce que tu demandes à condition qu'il n'y ai pas de défilement. Sinon, c'est crade: tu te retrouves avec ton prompt au milieu de ton stdout.   :Confused: 

Maintenant, vue le souk que c'est, je te conseille de passer sous ncurses en C si tu tiens à ta ligne supplémentaire. Mais, tout de suite, ça fait plus de boulot.   :Laughing: 

----------

## bulki

Merci ! Je connaissais pas du tout tput !

----------

