A voir également:
- Récupérer commande dans un fichier texte
- Fichier rar - Guide
- Invite de commande - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
5 réponses
le formatage du forum supprime les lignes vides présentes avant et après m dans le fichier test1.txt
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
17 févr. 2012 à 17:47
17 févr. 2012 à 17:47
Salut,
Déjà, le nom des variables ne doivent pas contenir de point ;-\
À remplacer par un underscore (ma_variable).
Pour prendre en compte des variables contenues dans un autre fichier, il faut "sourcer" ledit fichier (commande 'source' ou '.').
Pour interpréter une commande contenue dans une variable il faut "évaluer" ladite variable (commande 'eval').
Mise en application :
;-))
Déjà, le nom des variables ne doivent pas contenir de point ;-\
À remplacer par un underscore (ma_variable).
Pour prendre en compte des variables contenues dans un autre fichier, il faut "sourcer" ledit fichier (commande 'source' ou '.').
Pour interpréter une commande contenue dans une variable il faut "évaluer" ladite variable (commande 'eval').
Mise en application :
$ ls foo.sh* test.txt $ cat test.txt memoire_cmde=free memoire_opts=m memoire_args= memoire_thr=20% $ cat foo.sh #! /bin/bash source test.txt eval ${memoire_cmde} -${memoire_opts} > test1.txt $ ./foo.sh $ ls foo.sh* test1.txt test.txt $ cat test1.txt total used free shared buffers cached Mem: 16062 3595 12467 0 119 2095 -/+ buffers/cache: 1380 14682 Swap: 3992 0 3992 $
;-))
salut Zipe,
merci beaucoup pour ta réponse complète qui m'a bien dépatouillée.
Selon toi il est vraiment impossible d'avoir des variables avec un point dedans ?
A tout hasard, est ce que tu connaitrais l'équivalent de la commande free sur Mac car c'est le matériel que j'utilise? et si oui, est ce que tu sais comment je peux extraire une variable du résultat de la commande en question, par exemple la mémoire totale, pour faire un calcul avec par la suite?
Encore merci pour ton aide.
merci beaucoup pour ta réponse complète qui m'a bien dépatouillée.
Selon toi il est vraiment impossible d'avoir des variables avec un point dedans ?
A tout hasard, est ce que tu connaitrais l'équivalent de la commande free sur Mac car c'est le matériel que j'utilise? et si oui, est ce que tu sais comment je peux extraire une variable du résultat de la commande en question, par exemple la mémoire totale, pour faire un calcul avec par la suite?
Encore merci pour ton aide.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
17 févr. 2012 à 19:59
17 févr. 2012 à 19:59
Mac je ne connais pas, mais comme c'est à base d'Unix, je suppose que la commande "free" existe aussi ;-))
Quand à extraire une partie du fichier, awk est ton ami :
;-))
Quand à extraire une partie du fichier, awk est ton ami :
$ cat test1.txt total used free shared buffers cached Mem: 16062 3559 12503 0 121 2096 -/+ buffers/cache: 1341 14721 Swap: 3992 0 3992 $ awk '/^Mem:/ { print $2}' test1.txt 16062 $
;-))
Utilisateur anonyme
18 févr. 2012 à 00:37
18 févr. 2012 à 00:37
salut,
Ici, 'eval' n'est pas nécessaire.
Ici, 'eval' n'est pas nécessaire.
cat >cmde.txt cmde=free opt='-m' ^D cat > exeCmdetxt #!/bin/bash . ./cmde.txt $cmde $opt ^D chmod u+x exeCmdetxt ./exeCmdetxt total used free shared buffers cached Mem: 16062 3559 12503 0 121 2096 -/+ buffers/cache: 1341 14721 Swap: 3992 0 3992si 'free' n'est pas disponible, peut-être y a-t-il quand même un fichier /proc/meminfo
awk '/^MemTotal/{printf("%d Mo\n", $2/1024}' /proc/meminfo
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci à tous pour vos aides.
En fait le meilleur moyen pour obtenir les informations sur la mémoire vive du Mac est de faire un top et avec un grep sur Physmem et un awk on peut obtenir la mémoire libre.
Voici la ligne de commande :
#! /bin/bash
top -l 1 | grep PhysMem: | awk '{print "La memoire libre est de :" $10}'
Cependant je me retrouve face à un nouveau problème, mineur je pense, quand j'exécute mon script, le curseur retourne à la ligne et je suis obligé de faire un Ctrl+C pour arrêter l'exécution et avoir la réponse. Je pense que celà vient des options du top.
Si quelqu'un a une idée ?
En fait le meilleur moyen pour obtenir les informations sur la mémoire vive du Mac est de faire un top et avec un grep sur Physmem et un awk on peut obtenir la mémoire libre.
Voici la ligne de commande :
#! /bin/bash
top -l 1 | grep PhysMem: | awk '{print "La memoire libre est de :" $10}'
Cependant je me retrouve face à un nouveau problème, mineur je pense, quand j'exécute mon script, le curseur retourne à la ligne et je suis obligé de faire un Ctrl+C pour arrêter l'exécution et avoir la réponse. Je pense que celà vient des options du top.
Si quelqu'un a une idée ?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
18 févr. 2012 à 12:58
18 févr. 2012 à 12:58
man top :
-b : Batch mode operation Starts top in 'Batch mode', which could be useful for sending output from top to other programs or to a file. In this mode, top will not accept input and runs until the iterations limit you've set with the '-n' command-line option or until killed.
je ne comprends pas pourquoi une fois de plus je n'ai pas l'option -b sous Mac OS X.
Voici où j'en suis actuellement :
Peux tu me dire ce que ton terminal t'affiche après l'exécution de ce script? merci à toi
Voici où j'en suis actuellement :
#! /bin/bash memoire_cmde=top memoire_opts=o memoire_args=vsize echo $memoire_cmde #Ces trois lignes vérifient qu'il prend bien les bons arguments echo $memoire_opts echo $memoire_args eval ${memoire_cmde} -${memoire_opts} ${memoire_args} > test1.txt awk '/^PhysMem:/ {print "La memoire libre est de :" $10}' test1.txt
Peux tu me dire ce que ton terminal t'affiche après l'exécution de ce script? merci à toi
J'ai trouvé comment résoudre mes problèmes de champs mémoire à extraire.
J'ai donc mis ces deux données dans deux variables distinctes et j'aimerais maintenant effectuer un calcul avec la valeur de ces deux variables, en l'occurrence un calcul de pourcentage.
Faut il convertir ces chaines de caractères en entiers ?
merci
J'ai donc mis ces deux données dans deux variables distinctes et j'aimerais maintenant effectuer un calcul avec la valeur de ces deux variables, en l'occurrence un calcul de pourcentage.
Faut il convertir ces chaines de caractères en entiers ?
merci