Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

aux pros de terminal

7 réponses
Avatar
frederic.salach
Bonsoir,

dans un shell #! /bin/sh j'ai trois variables V1, V2 et V3. J'aimerai
les enregister dans un fichier text en précisant le chemin
d'enregistrement du fichier et son nom. Une idée pour savoir comment
faire ça ?
J'ai regardé le man de Vim mais je n'est pas trouver les solutions : il
y peut être une astuce.
Merci d'avance.

7 réponses

Avatar
patpro ~ patrick proniewski
In article <1h3kcl2.10uol3g17o9z64N%,
(Frederic Salach) wrote:

Bonsoir,

dans un shell #! /bin/sh j'ai trois variables V1, V2 et V3. J'aimerai
les enregister dans un fichier text en précisant le chemin
d'enregistrement du fichier et son nom. Une idée pour savoir comment
faire ça ?
J'ai regardé le man de Vim mais je n'est pas trouver les solutions : il
y peut être une astuce.
Merci d'avance.



echo "${V1} ${V2} ${V3}" >> /chemin/du/fichier.txt


patpro

Avatar
frederic.salach
patpro ~ patrick proniewski wrote:

In article <1h3kcl2.10uol3g17o9z64N%,
(Frederic Salach) wrote:

Bonsoir,

dans un shell #! /bin/sh j'ai trois variables V1, V2 et V3. J'aimerai
les enregister dans un fichier text en précisant le chemin
d'enregistrement du fichier et son nom. Une idée pour savoir comment
faire ça ?
J'ai regardé le man de Vim mais je n'est pas trouver les solutions : il
y peut être une astuce.
Merci d'avance.



echo "${V1} ${V2} ${V3}" >> /chemin/du/fichier.txt


patpro


Vraiment merci beaucoup, y a des truc tout cul cul mais quand on ne
connait pas. Merci patpro.


Avatar
Saïd
Frederic Salach :
patpro ~ patrick proniewski wrote:

In article <1h3kcl2.10uol3g17o9z64N%,
(Frederic Salach) wrote:

Bonsoir,

dans un shell #! /bin/sh j'ai trois variables V1, V2 et V3. J'aimerai
les enregister dans un fichier text en précisant le chemin
d'enregistrement du fichier et son nom. Une idée pour savoir comment
faire ça ?
J'ai regardé le man de Vim mais je n'est pas trouver les solutions : il
y peut être une astuce.
Merci d'avance.



echo "${V1} ${V2} ${V3}" >> /chemin/du/fichier.txt


patpro


Vraiment merci beaucoup, y a des truc tout cul cul mais quand on ne
connait pas. Merci patpro.


le script donne ajoute les varibles la fin du fichier. pour que le fichier
ne contienne que les trois variables (i.e. effacer son vieux contenu il faut
faire:

echo "${V1} ${V2} ${V3}" > /chemin/du/fichier.txt


--
Saïd.
C programmers never die - they're just cast into void.



Avatar
Nicolas.MICHEL
Saïd wrote:

le script donne ajoute les varibles la fin du fichier. pour que le fichier
ne contienne que les trois variables (i.e. effacer son vieux contenu il faut
faire:

echo "${V1} ${V2} ${V3}" > /chemin/du/fichier.txt


Note :
ici le séparateur est un " " (un espace)
Si tes variables contiennent des espaces, pour les récupérer ensuite ça
sera difficile.
Note aussi que ce genre de truc ne fonctionne pas en csh et tcsh.
--
S'il n'y a pas de solutions, c'est qu'il n'y a pas de problèmes
iChat/AIM : michelnicolas

Avatar
blanc
Nicolas MICHEL wrote:

Note :
ici le séparateur est un " " (un espace)
Si tes variables contiennent des espaces, pour les récupérer ensuite ça
sera difficile.
Note aussi que ce genre de truc ne fonctionne pas en csh et tcsh.


???
Que veux tu dire exactement ?
L'envoi des valeurs de variables vers un fichier par la commande

echo "${V1} ${V2} ${V3}" > /chemin/du/fichier.txt

marche parfaitement quelque soit le shell, y compris csh ou tcsh.

Si c'est la question de séparation des variables par des espaces et de
les récupérer ensuite, alors là d'accord.

Mais rien ne t'empêche d'utiliser un autre séparateur (même
multi-caractères) dont on sait qu'il n'est pas dans les variables.

Exemple :
echo "${V1} *** ${V2} *** ${V3}" > /chemin/du/fichier.txt


Si on n'utilise pas csh ou tcsh, on peut même prendre une fin de ligne
comme séparateur (elle est en effet neutralisée pour le shell par les
guillemets) :

echo "$SHELL
$USER
$PATH"> /chemin/du/fichier.txt

JPaul.

--
/==/==- Jean-Paul BLANC
/ /--/--// quelque-part (somewhere)
|/| L | en (in)
/|| = ||| FRANCE

Avatar
Nicolas.MICHEL
JPaul wrote:

echo "${V1} ${V2} ${V3}" > /chemin/du/fichier.txt

marche parfaitement quelque soit le shell, y compris csh ou tcsh.


Euh, tien, c'est vrais ça.
J'étais persuadé que la meilleure raison d'utiliser bash plutôt que tcsh
était l'absence de redirection dans tcsh.
En fait ça fonctionne mais pas pour tout (notament la redirection des
erreures):
<http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/>

Désolé donc.

Si c'est la question de séparation des variables par des espaces et de
les récupérer ensuite, alors là d'accord.


Oui, en effêt, ça dépends de la nature des variables à récupérer
ensuite.

echo "$SHELL
$USER
$PATH"> /chemin/du/fichier.txt


Il y a plus compact :
echo "$in$jn$k" >fichier.txt

--
S'il n'y a pas de solutions, c'est qu'il n'y a pas de problèmes
iChat/AIM : michelnicolas

Avatar
blanc
Nicolas MICHEL wrote:

J'étais persuadé que la meilleure raison d'utiliser bash plutôt que tcsh
était l'absence de redirection dans tcsh.
En fait ça fonctionne mais pas pour tout (notament la redirection des
erreures):
<http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/>


Si, si c'est possible, moyennant l'astuce (presque) indiquée dans cette
page que tu cites :

(cmd > fich1) >& fich2

fich1 reçoit la sortie standard et fich2 reçoit la sortie d'erreur

Ceci étant, concernant le choix du shell, après avoir utilisé tcsh
pendant plusieurs années, je ne pense pas que bash lui soit supérieur.
Différent, c'est tout.
Mais je suis maintenant passé à zsh, et le trouve nettement supérieur à
bash et à tcsh.

echo "$SHELL
$USER
$PATH"> /chemin/du/fichier.txt


Il y a plus compact :
echo "$in$jn$k" >fichier.txt


Effectivement, j'avais oublié les n...

JPaul.

--
/==/==- Jean-Paul BLANC
/ /--/--// quelque-part (somewhere)
|/| L | en (in)
/|| = ||| FRANCE