Bonjour, voici un cas plutôt épineux.
L'idée est d'intégrer une sorte d'entête dans tous les futurs script SH .... une image parle mieux que des mots :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
##   // --------------------------------------------------------------- \\   ##
##   ||                                                                 ||   ##
##   ||         Script ...........................................      ||   ##
##   ||     ......................................................      ||   ##
##   ||     ......................................................      ||   ##
##   ||                                                                 ||   ##
##   \\ --------------------------------------------------------------- //   ##
##           ||                                                ||            ##
##           ||         Développeur : (Votre nom ici)	       ||            ##
##           ||  Version : 1.0                 Année : 2023    ||            ##
##           ||  Licence :                                     ||            ##
##           ||                                                ||            ##
##           \\ ---------------------------------------------- //            ##
J'ai déjà réussi à recréer les différentes lignes (chacune contenue dans une chaîne puis sauvegardé comme élément d'un tableau).
L'affichage est correcte à ce que j'attendai avec la commande "CAT".

Mais dès que je veux enregistrer le tout dans le nouveau script ..... cela coince.
Pour ce faire, j'utilise la redirection d'une commande vers un fichier ... et à partir de la ..... je perds mes espacement, qui serviront de centreur de contenu, (ces espacements sont constitué d'un ensemble de caractère espace). En clair au lieu d'avoir une dizaine d'espace à un endroit je me retrouve qu'avec un seul ... alors que la concaténation s'affiche correctement avec la commande ECHO.

pour donner un exemple :
Je code ma chaîne avec ceci : # # # # #
Affichage avec echo : # # # # #
Affichage avec CAT du fichier: # # # # #

Bref sympa comme erreur.
En cherchant un peu, j'ai trouvé un p'tit problème :
Le script que je développe est sauvegardé sur un fichier avec encodage de caractères en UTF-8 (information vérifié avec la commande FILE -i MonFichier.sh).
Par contre le nouveau fichier créé via la redirection d'ECHO, a un encodage US-ASCII .... est-ce que cela une incidence.

De plus la conversion avec la commande
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
ICONV -f US-ASCII -t UTF-8 File_Input -o File_Ouput
ne fait aucun effet, le fichier reste sous US-ASCII.

L'environnement de travail est sous un RaspBerry, Installé en UTF-8 et sous BASH.

Je vous joint un code edulcoré qui reproduit le défaut :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
## Déclaration du tableau :
declare -a Tab_Header
 
## Déclaration des variables :
Script_SH="./Result.sh"
## -- Initialisation des variables avec le code ASCII 
Indent_1=$(echo -e "\x20\x20\x20")				## Tabulation
Indent_2=$(echo -e "\x20")						## Espace
Charac_A=$(echo -e "\x23\x23")  				## Character => 'dièse'
 
## Remplissage du tableau :
Tab_Header[0]="#!/bin/bash"
Tab_Header=("${Tab_Header[@]}" "-*- coding:Utf-8 -*-")
Tab_Header=("${Tab_Header[@]}" "")
 
## -- Concaténation de la chaîne :
String="${Charac_A}${Indent_2}${Indent_2}${Indent_2}${Charac_A}"
String="${String}${Indent_2}${Charac_A}"
String="${String}${Indent_2}${Charac_A}"
String="${String}${Indent_2}${Indent_2}${Indent_2}${Charac_A}"
 
## Ajout de la nouvelle ligne dans le tableau :
Tab_Header=("${Tab_Header[@]}" "${String}")
 
## Affichage à l'écran:
echo "${String}"
 
## Sauvegarde du tableau dans le fichier : 
for i in ${!Tab_Header[@]}
do
echo ${Tab_Header[$i]} >> $Script_SH
 
##echo "dans le tableau $i : ${tableau[$i]}"
done
Résultat attendu à l'affichage : (Carac #)(Espace)(Espace)(Espace)(Carac #)(Espace)(Carac #)(Espace)(Carac #)(Espace)(Espace)(Espace)(Carac #)

DSL par avance pour les erreurs de débutants.
Et merci pour votre aide.