#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...
#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
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
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
Coolgeek a écrit :si tu essaie ceci :
SPACE_FREE_WIN=(($SPACE_FREE_AFTER-$SPACE_FREE_BEFORE))
en sh
clean.sh: 144: Syntax error: "(" unexpecteden 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