# Création d'un script

**URL:** <https://www.debian-fr.org/t/creation-dun-script/84366>\
**Category:** Programmation\
**Created:** [Avril 10, 2021, 12:22 UTC](https://www.debian-fr.org/t/creation-dun-script/84366 "2021-04-10T00:22:55Z")\
**Posts on this page:** 12\
**Page:** 2

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Avril 10, 2021, 9:23 UTC](https://www.debian-fr.org/t/creation-dun-script/84366/21 "2021-04-10T21:23:28Z")

</div>

> [@Daher](#):
>
> … me dire ce que ca signifie le parametre **-n** apres **echo**

Quand tu as un doute, ou que tu ne sais pas,  
prends le réflexe d’aller lire page de **man** uel de la commande  
ou/et de l’interpréteur de commandes que tu utilises.

Donc, tu pourrais rechercher la commande `echo` en lisant les pages _man_ du `bash` :

```plaintext
man bash

```

pour y trouver, entre autres, ceci :

> ```plaintext
> …
> echo [-neE] [arg ...]
> Output the args, separated by spaces, followed by a newline.
> The return status is 0 unless a write error occurs.
> If -n is specified, the trailing newline is suppressed.
> If the -e option is given, interpretation of the following backslash-escaped characters is enabled.
> The -E option disables the interpretation of these escape characters, even on systems where they are interpreted by default.
> The xpg_echo shell option may be used to dynamically determine whether or not echo expands these escape characters by default.
> echo does not interpret -- to mean the end of options.
> echo interprets the following escape sequences:
> \a alert (bell)
> \b backspace
> \c suppress further output
> \e
> \E an escape character
> \f form feed
> \n new line
> \r carriage return
> \t horizontal tab
> \v vertical tab
> \\ backslash
> \0nnn the eight-bit character whose value is the octal value nnn (zero to three octal digits)
> \xHH the eight-bit character whose value is the hexadecimal value HH (one or two hex digits)
> \uHHHH the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value HHHH (one to four hex digits)
> \UHHHHHHHH
> the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value HHHHHHHH (one to eight hex digits)
> …
> 
> ```

Dans les fichiers **`f1.txt`** et **`f2.txt`** je n’ai mis que ce qui était demandé dans l’énoncé,  
et dans cet énoncé, il n’était pas demandé de mettre un retour à la ligne,  
donc, j’ai utilisé l’option **`n`** de la commande `echo` pour qu’il n’y ait aucun retour à la ligne dans ces deux fichiers.

Mais finalement, je réalise qu’en utilisant la commande **`tee`**  
je n’ai pas tout-à fait respecté la demande de l’énoncé,  
puisque ce n’est pas le contenu du fichier **`f3.txt`** qui est affiché,  
c’est le flux qui est envoyé dans le fichier **`f3.txt`** qui s’affiche.

---

<div class="post-metadata">

**Author:** ![Daher](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/3da27b/32.png) [@Daher](https://www.debian-fr.org/u/Daher)\
**Post date:** [Avril 12, 2021, 11:43 UTC](https://www.debian-fr.org/t/creation-dun-script/84366/22 "2021-04-12T23:43:01Z")

</div>

Merci MicP c’est très gentil de ta part et c’est bien explique. je vois un peu plus clair les choses maintenant.

---

<div class="post-metadata">

**Author:** ![dindoun](https://www.debian-fr.org/user_avatar/www.debian-fr.org/dindoun/32/4281_2.png) [@dindoun](https://www.debian-fr.org/u/dindoun)\
**Post date:** [Avril 13, 2021, 1:03 UTC](https://www.debian-fr.org/t/creation-dun-script/84366/23 "2021-04-13T01:03:29Z")

</div>

```auto
echo -n "Bonjour les amis" > f1.txt
echo "du cours SE2" > f2.txt
echo $(cat f1.txt)" "$(cat f2.txt) > f3.txt
cat f3.txt

```

ou même

```auto
echo "Bonjour les amis" > f1.txt
echo "du cours SE2" > f2.txt
echo $(cat f1.txt)" "$(cat f2.txt) > f3.txt
cat f3.txt

```

```auto
echo "Bonjour les amis" > f1.txt
echo "du cours SE2" > f2.txt
strings -s" " f1.txt f2.txt |sed 's#$#\n#'> f3.txt
cat f3.txt

```

---

<div class="post-metadata">

**Author:** ![littlejohn75](https://www.debian-fr.org/user_avatar/www.debian-fr.org/littlejohn75/32/3840_2.png) [@littlejohn75](https://www.debian-fr.org/u/littlejohn75)\
**Post date:** [Avril 13, 2021, 4:09 UTC](https://www.debian-fr.org/t/creation-dun-script/84366/24 "2021-04-13T16:09:49Z")

</div>

> [@dindoun](#):
>
> ```bash
> echo $(cat f1.txt)" "$(cat f2.txt) > f3.txt
> 
> ```

Bof, bof pour cette espace explicite dans la commande complètement inutile fonctionnellement mais bien sûr essentielle pour perdre les élèves du cours SE2. 🙂

```auto
fp2@debpacha:/tmp $ echo $(cat f1.txt) $(cat f2.txt)
Bonjour les amis du cours SE2
fp2@debpacha:/tmp $ echo $(cat f1.txt)" "$(cat f2.txt)
Bonjour les amis du cours SE2
fp2@debpacha:/tmp $ echo $(< f2.txt)
du cours SE2
fp2@debpacha:/tmp $ 

```

On voit déjà qu’on peut ici remplacer cat par une indirection. merci @anon29980398  
Mais ces solutions qui reviennent à utiliser

```bash
echo $word1 $word2

```

pour concaténer (avec une espace) deux variables du shell (deux morceaux de phrase)) ne sont valables que si on met des double apostrophes correctement.

```auto
fp2@debpacha:/tmp $ echo "$(cat f1.txt)" "$(cat f2.txt)"
Bonjour les amis du cours SE2

```

Je me permettrais de reformuler l’exercice de la manière suivante :  
« Créer deux fichier **f1.txt** ayant comme contenu « Dedans, avec les miens, » et **f2.txt** ayant comme contenu « dehors en citoyen. ». Écrire un script **fusion.sh** qui reçoit ces deux fichiers et qui va créer un troisième fichier **castex.txt** ayant comme contenu la fusion des deux premiers fichiers. Le contenu de castex.txt sera alors « Dedans avec les miens, dehors en citoyen. ». Le script affichera après le contenu du fichier f3.txt. Exécuter votre script. »

Note au prof du cours SE2 : avec un bon alexandrin coupé à l’hémistiche cela a tout de suite beaucoup plus d’allure. Les noms des deux fichiers pourraient être `jc1.txt` et jc2.txt` (en l’honneur de Jean Castex).

Maintenant un exercice un peu plus difficile :  
Créez un fichier pc1;txt contenant

```auto
Julie: - Que voulez-vous qu'il fît contre trois?

```

et un fichier `pc2.txt` contenant

```plaintext
Le vieil Horace: - Qu'il mourût!
Ou qu'un beau désespoir alors le secourût.

```

(texte obtenu sur [Le Monde.fr - Actualités et Infos en France et dans le monde](https://dicocitations.lemonde.fr/citations/citation-115971.php)  
)  
Créez un script qui fusionne les deux fichiers et crée un fichier `pc3.txt`ayant pour contenu

```plaintext
Julie: - Que voulez-vous qu'il fît contre trois?
Le vieil Horace: - Qu'il mourût!
Ou qu'un beau désespoir alors le secourût.

```

Et à l’imparfait du subjonctif, c’est encore mieux !

Cordialement,  
Regards,  
Mit freundlichen Grüßen,  
مع تحياتي الخالصة

* * *

F. Petitjean  
Ingénieur civil du Génie Maritime.

Femme qui pète et poule qui pond ne font que bruit dans la maison.  
Les proverbes philosophiques du Professeur Choron

---

<div class="post-metadata">

**Author:** ![dindoun](https://www.debian-fr.org/user_avatar/www.debian-fr.org/dindoun/32/4281_2.png) [@dindoun](https://www.debian-fr.org/u/dindoun)\
**Post date:** [Avril 16, 2021, 3:58 UTC](https://www.debian-fr.org/t/creation-dun-script/84366/25 "2021-04-16T15:58:03Z")

</div>

> [@littlejohn75](#):
>
> > [@dindoun](#):
> >
> > ```auto
> > echo $(cat f1.txt)" "$(cat f2.txt) > f3.txt
> > 
> > ```
> 
> Bof, bof pour cette espace explicite dans la commande complètement inutile fonctionnellement mais bien sûr essentielle pour perdre les élèves du cours SE2.

héhé  
c’est sur que c’est pas beau 🙂

> [@littlejohn75](#):
>
> `echo "$(cat f1.txt)" "$(cat f2.txt)"`

tout à fait d’accord pour les doubles guillemets.

---

<div class="post-metadata">

**Author:** ![anon30990328](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@anon30990328](https://www.debian-fr.org/u/anon30990328)\
**Post date:** [Avril 29, 2021, 1:10 UTC](https://www.debian-fr.org/t/creation-dun-script/84366/26 "2021-04-29T01:10:13Z")

</div>

Perso, sur votre inspiration, j’ai fait ceci :

```bash
cat SE2.sh 

#!/bin/bash
touch f1.txt
touch f2.txt
echo Bonjour les amis > f1.txt
echo du cours SE2 > f2.txt
echo `cat f1.txt` `cat f2.txt` > f3.txt
cat -n f3.txt

```

---

<div class="post-metadata">

**Author:** ![anon30990328](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@anon30990328](https://www.debian-fr.org/u/anon30990328)\
**Post date:** [Avril 29, 2021, 1:11 UTC](https://www.debian-fr.org/t/creation-dun-script/84366/27 "2021-04-29T01:11:48Z")

</div>

Je vois qu’il manque les simple guillemet entourante les commandes deux commande cat à l’echo.

Le forum.

Pour obtenir un simple guillemet, c’est alt gr+7 espace  
Il en faut 4 ici.

Voila, j’ai edité mon message pour le mettre en texte preformaté et on voit les simples guillemets.

---

<div class="post-metadata">

**Author:** ![josephtux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/josephtux/32/3985_2.png) [@josephtux](https://www.debian-fr.org/u/josephtux)\
**Post date:** [Juin 21, 2021, 11:03 UTC](https://www.debian-fr.org/t/creation-dun-script/84366/28 "2021-06-21T23:03:22Z")

</div>

> [@anon30990328](#):
>
> guillemets

pas g_uillemets_, mais _apostrophes_ (inversées).  
Cette confusion apparaît souvent, serait-ce dû à l’anglais où à une épidémie?  
`" = guillemets de machine à écrire`

`'' = 2 apostrophes de machine à écrire (et `` = 2 apostrophes inverses, faciles à confondre avec le guillemet typographique ouvrant anglais, équivalent du » français).`

La différence est trompeuse; il semble donc utile de ne pas aggraver la confusion avec leur désignation.

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Juin 22, 2021, 8:08 UTC](https://www.debian-fr.org/t/creation-dun-script/84366/29 "2021-06-22T08:08:35Z")

</div>

Ou plutôt : simple et doubles quotes 😉

Quand on fait de la traduction EN→FR, c’est souvent les termes utilisés.  
Et faut avouer que c’est bien plus simples à retenir. 😃

---

<div class="post-metadata">

**Author:** ![josephtux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/josephtux/32/3985_2.png) [@josephtux](https://www.debian-fr.org/u/josephtux)\
**Post date:** [Juin 22, 2021, 11:27 UTC](https://www.debian-fr.org/t/creation-dun-script/84366/30 "2021-06-22T11:27:56Z")

</div>

> [@PengouinPdt](#):
>
> simple et doubles quotes

En effet, la meilleure façon de ne pas trahir en traduisant est…  
de ne pas traduire 😉 Après tout, l’anglais s’impose en informatique, mais je ne crois pas être le seul handicapé avec cette langue qui me fait perdre mon latin. Donc merci aux traducteurs et à des choix comme celui-ci.  
Il est vrai que ma remarque était d’ordre typographique et finalement peu adaptée aux graphies des langages informatiques et de ses claviers, et «simple» ou «double» évite beaucoup de confusion (reste à préciser quand le double apostrophe ne doit pas remplacer le guillemet en indiquant, par exemple, «deux simples quotes» )  
Merci pour ce recentrage précis du vocabulaire vers la matière de ce forum.

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Juin 22, 2021, 1:24 UTC](https://www.debian-fr.org/t/creation-dun-script/84366/31 "2021-06-22T13:24:21Z")

</div>

Bonjour

> [@josephtux](#):
>
> … simple» ou «double» évite beaucoup de confusion (reste à préciser quand le double apostrophe ne doit pas remplacer le guillemet en indiquant, par exemple, «deux simples quotes» ) …

Je le comprends comme ça aussi.

* * *

Une page web permettant de voir toutes les pages de code des caractères [unicodes](https://fr.wikipedia.org/wiki/Unicode) :

[https://www.utf8-chartable.de/](https://www.utf8-chartable.de/)

* * *

Dans la première colonne, le point de code unicode  
Dans la deuxième colonne, le caractère affiché  
Dans la troisième colonne, le nom du caractère dans la table unicode

```plaintext
U+0022 " QUOTATION MARK
U+0027 ' APOSTROPHE
U+0060 ` GRAVE ACCENT

```

---

<div class="post-metadata">

**Author:** ![anon30990328](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/aeb1de/32.png) [@anon30990328](https://www.debian-fr.org/u/anon30990328)\
**Post date:** [Janvier 10, 2022, 6:42 UTC](https://www.debian-fr.org/t/creation-dun-script/84366/32 "2022-01-10T18:42:59Z")

</div>

Fortement probable et je vous remerci de votre message.

Bien que ce que vous appeliez guillements «&nbsp;de machine à écrire&nbsp;» soit pour moi effectivement des guillements, mais semble t - il sont des double guillemet.

Mais merci.

[Page précédente](https://www.debian-fr.org/t/creation-dun-script/84366.md?page=1)
