Oui … c’est vraiment pas pratique. En fait, plus j’apprends le shell et plus je déteste ce langage. Impossible d’affecter le contenu d’une variable à une autre sans que ce contenu soit “interprété” à tout va. Vraiment insupportable, on ne peut pas faire un code qui tienne la route.
Il faut que je me trouve un langage de scripts qui, bien qu’interprété, fournissent des variables dignes de ce nom. Et qui ne modifie des trucs que lorsqu’on le demande.
Je ne m’étais jamais posé la question avant, mais là je me demande vraiment pourquoi cette horreur sert de langage de script de base sur tout les systèmes Unix du monde. A moins d’être un expert, c’est un nid à bugs.
Bon après avoir vidé mon sac, je réponds à ta question : mon but est d’arriver à manipuler des variables comme on le ferait dans n’importe quel langage de programmation normal. C’est à dire en maîtrisant le contenu d’une chaîne de caractères à l’octet près. Mais j’abandonne, car même si j’arrivais à faire cette prouesse, si jamais je fais un “echo” du contenu de la variable, tout est modifié.
En tout cas merci d’avoir essayer de résoudre mon problème insoluble.
Au fait pour sed et awk, il y a toujours le même problème, au moment de passer les données à traiter à ces langages, il y aura une expansion faite par le shell. En fait, il faut toujours laisser les données dans des fichiers et les manipuler avec des commandes pour assurer leur intégrité. Donc pour résumer, les variables du shell sont stockées sur le disque dur (c’est pas terrible au niveau des perfs).
Yeah !!
J’ai trouvé la solution pour faire des trucs potables : stocker le contenu des variables dans des fichiers se trouvant dans le répertoire [size=110]/dev/shm[/size] !
Comme ça on a les perfs et la sûreté. 