# Sh -c et argument, comment faire?

**URL:** <https://www.debian-fr.org/t/sh-c-et-argument-comment-faire/21119>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 8:23 UTC](https://www.debian-fr.org/t/sh-c-et-argument-comment-faire/21119 "2016-02-20T20:23:35Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![cantor](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/919ad9/32.png) [@cantor](https://www.debian-fr.org/u/cantor)\
**Post date:** [Février 20, 2016, 8:23 UTC](https://www.debian-fr.org/t/sh-c-et-argument-comment-faire/21119/1 "2016-02-20T20:23:35Z")

</div>

Bonjour,  
j’aimerai faire un ligne de commande (appelons là blabla) tel que si je lance `$ blabla nom_de_fichier`, je lance un nouveau terminal avec emacs (en mode texte donc) et le fichier nom\_de\_fichier ouvert.

Typiquement quelque chose de la forme:

```auto

```

de tel sorte que sh lance la commande suivante:

```auto

```

Mais voilà, cela ne marche pas. J’ai RTFM et STFW et je n’ai rien trouvé.

Je m’en remets donc à vos bon conseil,

Merci d’avance

---

<div class="post-metadata">

**Author:** ![ignatioza](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/i/41988e/32.png) [@ignatioza](https://www.debian-fr.org/u/ignatioza)\
**Post date:** [Février 20, 2016, 8:23 UTC](https://www.debian-fr.org/t/sh-c-et-argument-comment-faire/21119/2 "2016-02-20T20:23:38Z")

</div>

Salut  
Pour crée une commande, alias ou mieux, les fonction bash:  
Dans un fichier toto: tu mets ca:

`blabla()
{
	sh -c "gnome-terminal -e \"emacs -nw $1\""
}`  
Ensuite tu charge la fonction, par exemple dans le shell courant:  
$ . toto (c’est un . suivi d’un espace)  
Tu peux verifie que c’est bien chargé:  
$ type blabla  
blabla is a function  
blabla ()  
{  
sh -c "gnome-terminal -e “emacs -nw $1"”  
}

---

<div class="post-metadata">

**Author:** ![cantor](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/919ad9/32.png) [@cantor](https://www.debian-fr.org/u/cantor)\
**Post date:** [Février 20, 2016, 8:23 UTC](https://www.debian-fr.org/t/sh-c-et-argument-comment-faire/21119/3 "2016-02-20T20:23:40Z")

</div>

Oui, merci…  
Mais le principe était de le faire une unique ligne de commande, sans créer de fichier temporaire.  
Est ce possible ?

---

<div class="post-metadata">

**Author:** ![micky979](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/d9b06d/32.png) [@micky979](https://www.debian-fr.org/u/micky979)\
**Post date:** [Février 20, 2016, 8:23 UTC](https://www.debian-fr.org/t/sh-c-et-argument-comment-faire/21119/4 "2016-02-20T20:23:41Z")

</div>

Bonjour,

L’alias n’accepte pas d’argument il me semble par contre, tu peux faire une fonction sans passer par un fichier temporaire :

```auto

```

---

<div class="post-metadata">

**Author:** ![nuxwin](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/n/53a042/32.png) [@nuxwin](https://www.debian-fr.org/u/nuxwin)\
**Post date:** [Février 20, 2016, 8:23 UTC](https://www.debian-fr.org/t/sh-c-et-argument-comment-faire/21119/5 "2016-02-20T20:23:41Z")

</div>

[quote=“micky979”]Bonjour,

L’alias n’accepte pas d’argument il me semble par contre, tu peux faire une fonction sans passer par un fichier temporaire :

```auto

```

+1

---

<div class="post-metadata">

**Author:** ![cantor](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/919ad9/32.png) [@cantor](https://www.debian-fr.org/u/cantor)\
**Post date:** [Février 20, 2016, 8:23 UTC](https://www.debian-fr.org/t/sh-c-et-argument-comment-faire/21119/6 "2016-02-20T20:23:42Z")

</div>

Merci,  
Ça marche parfaitement !
