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 16/01/2008, à 21:25

fanfantasy7

[RESOLU]faire la soustraction de deux variables

Bonsoir

j'ai un script qui fait gagner de l'espace disque dur et je veut savoir la différence de l'espace libre du disque dur après l'exécution du script

j'ai donc au début du script

echo "espace libre disques dur en Mo"
SPACE_FREE_BEFORE=$(df -m /dev/sda1 | awk '/\/dev/ {split($1,sda1,"%");if (sda1[1] < 100) {print $4}}')
echo $SPACE_FREE_BEFORE

et à  la fin

echo "espace libre disques dur en Mo"
SPACE_FREE_AFTER=$(df -m /dev/sda1 | awk '/\/dev/ {split($1,sda1,"%");if (sda1[1] < 100) {print $4}}')
echo $SPACE_FREE_AFTER

jusque la tous ca bien je vois bien les 2 valeurs du disque dur en Mo
ensuite j'essai de faire une soustraction
SPACE_FREE_WIN=$((SPACE_FREE_AFTER-SPACE_FREE_BEFORE)) me renvoie comme erreur

# clean.sh: 141: arith: syntax error: "SPACE_FREE_AFTER-SPACE_FREE_BEFORE"

Dernière modification par fanfantasy7 (Le 16/01/2008, à 22:04)


Fanfantasy7
pc fixe : Linux Mint
pc portable : Ubuntu LTS

Hors ligne

#2 Le 16/01/2008, à 21:38

best_friend_fr

Re : [RESOLU]faire la soustraction de deux variables

Ca marche chez moi...


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne

#3 Le 16/01/2008, à 22:03

fanfantasy7

Re : [RESOLU]faire la soustraction de deux variables

bon j'ai résolu
mais c'est une erreur de ma part
j'ai l'habitude de lancer mes scripts .sh avec sh <nom_fichier.sh>
mais en lancant par bash c'est marche


Fanfantasy7
pc fixe : Linux Mint
pc portable : Ubuntu LTS

Hors ligne

#4 Le 17/01/2008, à 09:15

Sciensous

Re : [RESOLU]faire la soustraction de deux variables

pour info ça marche en lancant avec sh chez moi.
Que ce soit /bin/sh ou /bin/bash

à  voir pourquoi pas chez toi...
wink

#5 Le 17/01/2008, à 15:51

fanfantasy7

Re : [RESOLU]faire la soustraction de deux variables

j'en sais pas plus


Fanfantasy7
pc fixe : Linux Mint
pc portable : Ubuntu LTS

Hors ligne

#6 Le 17/01/2008, à 16:07

Coolgeek

Re : [RESOLU]faire la soustraction de deux variables

si tu essaie ceci :

SPACE_FREE_WIN=(($SPACE_FREE_AFTER-$SPACE_FREE_BEFORE))

Hors ligne

#7 Le 17/01/2008, à 16:32

fanfantasy7

Re : [RESOLU]faire la soustraction de deux variables

Coolgeek a écrit :

si tu essaie ceci :

SPACE_FREE_WIN=(($SPACE_FREE_AFTER-$SPACE_FREE_BEFORE))

en sh
clean.sh: 144: Syntax error: "(" unexpected



en bash
./clean.sh: line 144: erreur de syntaxe près du jeton `(' inattendu
./clean.sh: line 144: `SPACE_FREE_WIN=(($SPACE_FREE_AFTER-$SPACE_FREE_BEFORE))'

mais en bash
SPACE_FREE_WIN=$((SPACE_FREE_AFTER-SPACE_FREE_BEFORE))
pas d'erreur


Fanfantasy7
pc fixe : Linux Mint
pc portable : Ubuntu LTS

Hors ligne

#8 Le 17/01/2008, à 16:59

Yannick_LM

Re : [RESOLU]faire la soustraction de deux variables

Pour pas avoir d'ennuis, faut mettre ça au début du fichier :

#!/bin/bash

Et lancer le script par :
./script.sh
Dans ce cas là , c'est la première ligne qui donne l'interpréteur à  utiliser.

Si on lance avec sh, sous ma Ubuntu, par exemple, /bin/sh est un lien vers dash, et donc on tente d'exécuter un script prévu pour dash avec bash , la première ligne étant vue alors comme un simple commentaire

Et ça peut mal se passer:

clean.sh: 144: Syntax error: "(" unexpected

Voilà  .


à‰videmment, tout ceci ne fonctionne que si on respecte la syntaxe de Bash dans le script en question ...


Trucs et astuces pour Vim
Ma web page  avec des trucs dessus ...

Hors ligne

#9 Le 17/01/2008, à 17:02

fanfantasy7

Re : [RESOLU]faire la soustraction de deux variables

oui oui
quand je dit "en sh" je veut dire que je met "#!/bin/sh" au debut de mon script
et quand je dit"en bash" je veut dire que je met "#!/bin/bash" au debut de mon script
je lance mes scripts avec ./


Fanfantasy7
pc fixe : Linux Mint
pc portable : Ubuntu LTS

Hors ligne

#10 Le 17/01/2008, à 17:22

freebird

Re : [RESOLU]faire la soustraction de deux variables

Pour des calculs arithmétiques let fonctionne bien wink

let SPACE_FREE_WIN=$SPACE_FREE_AFTER-$SPACE_FREE_BEFORE

Hors ligne

#11 Le 17/01/2008, à 17:29

Alain.g

Re : [RESOLU]faire la soustraction de deux variables

fanfantasy7 a écrit :
Coolgeek a écrit :

si tu essaie ceci :

SPACE_FREE_WIN=(($SPACE_FREE_AFTER-$SPACE_FREE_BEFORE))

en sh
clean.sh: 144: Syntax error: "(" unexpected

en bash
./clean.sh: line 144: erreur de syntaxe près du jeton `(' inattendu
./clean.sh: line 144: `SPACE_FREE_WIN=(($SPACE_FREE_AFTER-$SPACE_FREE_BEFORE))'

Je pense que Coolgeek voulait écrire :

SPACE_FREE_WIN=$(($SPACE_FREE_AFTER-$SPACE_FREE_BEFORE))

Xubuntu Karmic !

Hors ligne