Pages : 1
#1 Le 17/08/2019, à 15:24
- emena
Question de programmation
Bonjour,
J'ai deux disques de backup et j'aimerais que chaque mois mon cron backup automatiquement sut l'un puis sur l'autre.
j'ai fais une table à deux entrés et je veux faire un modulo pour choisi l'entrée
DisqueCourant=(date +'%02m')%2
Qu'est ce qui cloche ? Pourquoi il ne fait pas le modulo ?
j'ai essayé plusieurs syntaxes, mais je ne trouve pas la solution, grand merci d'avance à celui qui pourra me sortir de ce bourbier.
EM
Ubuntu 22.04.4 LTS
Hors ligne
#2 Le 17/08/2019, à 15:57
- MicP
Re : Question de programmation
Bonjour
Pour calculer et afficher le résultat de l'opération 5 modulo 2 avec bash,
il faudrait faire :
echo $(( 5 % 2 ))
Pour faire afficher le nombre correspondant au mois en cours
mais sans le faire précéder par un 0 s'il n'est que sur un chiffre,
il faut entrer :
echo $(date +%-m)
Donc, pour assigner à la variable DisqueCourant
la valeur 0 ou un 1 en fonction du mois courant,
il te faudra faire :
DisqueCourant=$(( $(date +%-m) % 2 ))
Dernière modification par MicP (Le 17/08/2019, à 16:22)
Hors ligne
#3 Le 17/08/2019, à 16:15
- emena
Re : Question de programmation
Grand Merci, ça marche.
Il faudra vraiment que je me replonge dans les variables et les opérateurs de bash.
Bonne journée
EM
Dernière modification par emena (Le 17/08/2019, à 16:17)
Ubuntu 22.04.4 LTS
Hors ligne
#4 Le 17/08/2019, à 21:08
- Watael
Re : Question de programmation
date n''est plus indispensbable :
printf -v month '%(%-m)T'
echo $((month % 2))
et hop! une commande externe de plus en moins.
Dernière modification par Watael (Le 17/08/2019, à 21:08)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 18/08/2019, à 02:44
- MicP
Re : Question de programmation
Miam miam miam, j'aime beaucoup ce printf du bash
Ce qui donnerait alors :
DisqueCourant=$(($(printf '%(%-m)T')%2))
=======
Pour voir la page man du bash concernée
voir le retour de la commande :
man --pager='less -p "printf"' bash
Dernière modification par MicP (Le 18/08/2019, à 02:45)
Hors ligne
#6 Le 18/08/2019, à 07:34
- FrancisFDZ
Re : Question de programmation
Bonjour,
[Minute nostalgie]
Ça me rappelle les défis du défunt Hebdogiciel qui consistait à trouver une commande qui fasse un maximum de choses en une seule ligne
[/Minute nostalgie]
-- On peut avoir des raisons de se plaindre et n'avoir pas raison de se plaindre --
[Victor Hugo]
Hors ligne