Rechercher : dans
Par :

Script shell: fichier texte dans une variable

Dernière réponse le 9 oct 2009 à 09:49:46 ploue, le 6 déc 2006 à 05:41:00 
 Signaler ce message aux modérateurs

Salut a tous;

voilà, je cherche comment mettre le contenu d'un fichier texte dans une variable de mon script shell. (je débute..)

j'ai googloté en vain. (mal ?)

j'aimerais aussi savoir s' il est possible d'invoquer le module GTK dans le script, pour ce passer, dans ce cas, de languages comme perl ou python pour gerer des fenêtres.

merci :)


ps: si vous voulez en savoir plus je peux aussi vous décrire mon projet.

Meilleures réponses pour « script shell: fichier texte dans une variable » dans :
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha-Bang Premièrement,...
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...

1

jipicy, le 6 déc 2006 à 07:28:15

Salut,

ps: si vous voulez en savoir plus je peux aussi vous décrire mon projet.
Sans aller jusque là (quoi que si ça te fait plaisir...), mais explique davantage ce que tu entends par "je cherche comment mettre le contenu d'un fichier texte dans une variable" !!??
Donnes-nous un exemple concret.

Pour ce qui est de "gerer des fenêtres", si c'est de fenêtres de dialogues dont tu causes, regarde du côté de "Xdialog" (ou dialog en mode "ncurses") pour KDE (tu trouveras un petit exemple là) et de "Zenity" pour Gnome.

;-))
Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

2

lami20j, le 6 déc 2006 à 07:36:58

Salut,

le contenu d'un fichier texte dans une variable de mon script shell

var=$(cat fichier)
echo $var
lami20j

Répondre à lami20j

3

Zehirmhann, le 6 déc 2006 à 12:20:35

YES !!

merci lami20j !

Répondre à Zehirmhann

4

Zehirmhann, le 6 déc 2006 à 12:22:11

Edit: merci aussi a jipicy :P

Répondre à Zehirmhann

5

Julie, le 18 avr 2007 à 19:39:24

Et comment faire pour ensuite pouvoir considérer cette variable comme un entier et pouvoir l'incrémenter ?
nb=$((nb+1)) ne fonctionne pas par exemple
Merci.

Répondre à Julie

6

jipicy, le 18 avr 2007 à 20:06:04

Et

nb=$(expr $nb + 1)
ça donne quoi ?

Sinon, ta variable elle ressemble à quoi ? et elle sort d'où ?

Pour ton problème essaie plutôt :
nb=$(($nb+1))
;-)
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

7

Julie, le 19 avr 2007 à 09:36:06

Merci.

En fait la variable vient d'un fichier texte contenant un chiffre.
On le lit avec un "cat nomdufichier.txt"
L'echo de cette variable fonctionne bien et affiche 1

Par contre j'ai essayé les deux expressions que tu m'indiques et cela me donne une erreur due au type chaine que l'on essaie d'incrémenter.

Répondre à Julie

9

jipicy, le 19 avr 2007 à 12:08:01

Re-

Affiche-nous le résultat de la commande :

cat ton_fichier
Merci ;-)
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

8

Benj, le 19 avr 2007 à 11:35:32

b=`cat truc`  //fichier truc contient 1
a=$(($b+1))
echo $a
2


ca marche en bash ca non ?

Répondre à Benj

13

Kharec, le 9 oct 2009 à 09:05:43


ca marche en bash


Ce qui marche en bash marche généralement en sh ;-) @ bientôt on the Web ;-))

Répondre à Kharec

14

dubcek, le 9 oct 2009 à 09:48:03

Hello
je dirais plutot le contraire, ce qui fonctionne en sh fonctionne en bash
cette ligne fonctionne en bash mais pas en sh
$ export DATE=$(date)
cette ligne fonctionne en bash et en sh
$ DATE=`date`; export DATE

Répondre à dubcek

15

 Kharec, le 9 oct 2009 à 09:49:46

je dirais plutot le contraire, ce qui fonctionne en sh fonctionne en bash

Ah oui, pardon pour l'erreur ;-) @ bientôt on the Web ;-))

Répondre à Kharec

10

Julie, le 19 avr 2007 à 12:36:40

Alors mon problème venait du fait que dans monfichiertexte mon chiffre était suivi d'un retour chariot.
Une fois celui-ci enlevé, cela fonctionne !
Et voici à la lumière de vos remarques le code qui fonctionne pour lire ce chiffre, l'incrémenter et le réécrire; tout simplement :

nb=$(cat monfichiertexte)
nb=$((nb+1))
echo $nb > monfichiertexte

Merci à tous.

Répondre à Julie

11

Arnauld, le 31 mai 2007 à 10:01:21

Bonjour,

Est-ce qu'il est possible de faire la même chose en DOS ?

Merci.

Répondre à Arnauld

12

Matimat, le 9 oct 2009 à 08:35:25

Comme je cherchais aussi, je poste ici la réponse, même si cela date !

Au moins, ceux qui chercherons aussi seront content !

voici la solution en ligne de commande pour windows !

En ligne de commande :
for /f %i in ('type C:\texte.txt') do set var=%i

Dans un script :
for /f %%i in ('type C:\texte.txt') do set var=%%i

Ainsi la commande for va chercher le résultat du premier ensemble de caractère (%i) qui s'affiche grace à la commande "type", et va mettre ce résultat dans la variable "var"

Répondre à Matimat