Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/12/2011, à 03:10

n3o51

[resolu]commande dans une variable

j'essaie cela mais j'ai droit a commande introuvable a chaque fois

chargeur = 'cat /proc/acpi/battery/BAT1/state | grep "charging" | awk '{print $3}''

visiblement une erreur de guillemets mais ou et lesquels ?

Dernière modification par n3o51 (Le 24/12/2011, à 12:25)


Welcome to the real world
________________________________

Hors ligne

#2 Le 24/12/2011, à 08:09

credenhill

Re : [resolu]commande dans une variable

hello
pas d'espace autour de = et on peut simplifier

chargeur=$(awk '/charging/ {print $3}'  /proc/acpi/battery/BAT1/state)

Hors ligne

#3 Le 24/12/2011, à 09:53

Tomzz

Re : [resolu]commande dans une variable

Bonjour,
ça, ça te met le résultat de la commande dans la variable:

chargeur=$(awk '/charging/ {print $3}'  /proc/acpi/battery/BAT1/state)

le $(...) exécute la commande
Si tu veux vraiment mettre cette commande dans une variable pour l,exécuter plus tard, tu peux faire:

chargeur="awk '/charging/ {print $3}'  /proc/acpi/battery/BAT1/state"

puis plus loin pour l'exécution:

eval "${chargeur}"

Dernière modification par Tomzz (Le 24/12/2011, à 09:54)

Hors ligne

#4 Le 24/12/2011, à 11:23

n3o51

Re : [resolu]commande dans une variable

bonjour merci a vous deux cela dit la commande que vous me donné renvoie

charging state:          charged

alors que la mienne me renvoie

charged

comme ça je peut après je pense faire un test qui va me si le statut est différents de charged me mettre une notification avec notify.

EDIT : ce qui est drole c'est que votre commande renvoie taper a la main dans un term

charged

et dans un script

charging state:          charged

Voila ce que je voudrais faire mais qui ne marche pas

#!/bin/bash
chargeur="awk '/charging/ {print $3}'  /proc/acpi/battery/BAT1/state"
if [$(eval "${chargeur}" | awk '{print $3}') == "charged"]
then 
echo "charger"
fi

Dernière modification par n3o51 (Le 24/12/2011, à 11:33)


Welcome to the real world
________________________________

Hors ligne

#5 Le 24/12/2011, à 12:17

Postmortem

Re : [resolu]commande dans une variable

Salut,
Fais comme ceci dans ton script :

#!/bin/bash
chargeur=$(awk '/charging/ {print $3}'  /proc/acpi/battery/BAT1/state)
if [ "$chargeur" == "charged" ]
then 
echo "charger"
fi

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#6 Le 24/12/2011, à 12:25

n3o51

Re : [resolu]commande dans une variable

Merci bien ca fonctionne


Welcome to the real world
________________________________

Hors ligne

#7 Le 24/12/2011, à 12:47

Postmortem

Re : [resolu]commande dans une variable

La solution de Tomzz ne fonctionnait pas correctement car le $3 était perdu.
$3 est égal au 3ème argument passé à ton script et donc, sans lui passer d'argument, $3 était vide et donc supprimé de la commande awk. Cela provoquait donc l'affichage de la ligne complète.

$ chargeur="awk '/charging/ {print $3}'  /proc/acpi/battery/BAT1/state"
$ echo "$chargeur"
awk '/charging/ {print }'  /proc/acpi/battery/BAT1/state

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#8 Le 24/12/2011, à 12:52

n3o51

Re : [resolu]commande dans une variable

Merci pour ce compléments d'information bonne fête a toi


Welcome to the real world
________________________________

Hors ligne

#9 Le 24/12/2011, à 14:59

Tomzz

Re : [resolu]commande dans une variable

Bonjour,
Oups, exact.
Ceci dit la solution avec eval n'a aucun intérêt ici.
tu dois même peut-être pouvoir faire:

#!/bin/bash

if [ "$(awk '/charging/ {print $3}'  /proc/acpi/battery/BAT1/state)" == "charged" ]
then 
echo "charger"
fi

PS: juste pour info, pour faire marcher avec eval ça doit marcher en échappant le $3 avec \ : 

chargeur="awk '/charging/ {print \$3}'  /proc/acpi/battery/BAT1/state"
eval "${chargeur}"

Hors ligne

#10 Le 26/12/2011, à 12:39

n3o51

Re : [resolu]commande dans une variable

Merci Tomzz smile


Welcome to the real world
________________________________

Hors ligne