Pages : 1
#1 Le 27/10/2010, à 09:37
- Sofiane1284
bash
Bonjour,
Tout débutant sous Linux j'ai besoin de votre aide et je vais essayer d'etre le plus clair possible !
Alors voila je suis en entreprise , j'ai créer un batch qui permet de faire un robocopy quotidien du Home de tout les utilisateur de l'entreprise. Or mon tuteur souhaite que je fasse un bash sous cygwin qui permet de savoir quel jour de la semaine on est ( Lundi, Mardi.... ) et de faire en sorte que mon batch éxécute ce bash afin de savoir le jour et ensuite de faire le robocopy dans le dossier existant Lundi ou Mardi....... !
J'éspère avoir été clair et merci d'avance pour votre futur aide !
Dernière modification par Sofiane1284 (Le 27/10/2010, à 18:42)
Hors ligne
#2 Le 27/10/2010, à 09:58
- Totor
Re : bash
Bonjour,
Je pense qu'il est préférable de te laisser regarder le man de l'instruction date plutôt que de te donner l'instruction toute faite.
Dernière modification par Totor (Le 27/10/2010, à 09:58)
-- Lucid Lynx --
Hors ligne
#3 Le 27/10/2010, à 09:58
- Grünt
Re : bash
Essaie avec ça:
man date
Pour quitter le man, c'est la touche "q".
date +%u
Dernière modification par ǤƦƯƝƬ (Le 27/10/2010, à 09:59)
Red flashing lights. I bet they mean something.
Hors ligne
#4 Le 27/10/2010, à 10:16
- Sofiane1284
Re : bash
Non Totor je ne demande pas à avoir l'instruction toute faite , je demadne juste de l'aide , je commence ma formation et je débute sous Linux et donc pour moi cygwin reste encore très floue ! Je n'ai pas eu trop de mal à créer mon batch mais la ça ce complique et comme j'ai envie de réussir , j'aimerai bien résussir à faire ce qu'on me demande sans faire appel constamment à mon tuteur ! Et crois moi j'ai bcp cherché avant de faire ce post
Merci pour ces infos GRUNT
Hors ligne
#5 Le 27/10/2010, à 10:52
- Totor
Re : bash
Loin de moi ces idées d'assistanat te concernant, désolé d'avoir paru agressif, ce n'était pas mon intention.
-- Lucid Lynx --
Hors ligne
#6 Le 27/10/2010, à 13:35
- Grünt
Re : bash
@Sofiane1284:
N'hésite pas à t'installer un Linux chez toi histoire de te faire la main.
Si ton problème est résolu, tu peux éditer ton premier post et ajouter [RESOLU] dans le titre? Merci
Red flashing lights. I bet they mean something.
Hors ligne
#7 Le 27/10/2010, à 13:45
- Sofiane1284
Re : bash
C'est ce que je fais GRUNT ? Je boot sur un cd Ubunto 9.10 et j'essaye d'apprendre les commandes et avec le temps ça va rentrer !
Pour le moment mon problème n'est pas résolu , une fois que j'aurai le script et que ca fonctionnaire je metterai RESOLU.
Hors ligne
#8 Le 27/10/2010, à 13:56
- Grünt
Re : bash
Si tu veux qu'on t'aide pour le script tu peux en poser des morceaux ici, hein. On va pas l'écrire à ta place mais on peut t'expliquer.
Red flashing lights. I bet they mean something.
Hors ligne
#9 Le 27/10/2010, à 14:25
- Totor
Re : bash
bon à savoir : le comportement sous cygwin peut être différent que sous linux (c'est pour cela que je déteste cygwin....)
-- Lucid Lynx --
Hors ligne
#10 Le 27/10/2010, à 16:10
- Sofiane1284
Re : bash
@grunt , Tu veu que je poste mon script qua j'ai fais en batch pour robocopy ??
@totor, mon tuteur maitrise assez bien cygwin et ça a l'air assez pratique , mais pour mon sujet même lui n'y arrive pas
Hors ligne
#11 Le 28/10/2010, à 15:21
- Sofiane1284
Re : bash
Alors voilà mon bash sera comme ça je pense
#! /bin/bash
date = 'date +%a'
echo $dd
$ if [[ $dd =="Mon" ]]; then echo "Lundi;
elif [[ $dd =="Tue" ]]; then echo "Mardi"
elif [[ $dd =="Wed" ]]; then echo "Mercredi"
et ainsi de suite , comment je peu faire pour qu'ensuite il lance mon batch et que donc il backup dans le dossier et que je souhaite qui porte le nom du jour ?
Merci
Hors ligne
#12 Le 28/10/2010, à 16:45
- Grünt
Re : bash
Tu devrais plutôt utiliser "case/esac" pour ça.
Red flashing lights. I bet they mean something.
Hors ligne
#13 Le 28/10/2010, à 18:20
- ehmicky
Re : bash
Je sais pas si c'est moi qui ait pas compris ta situation, mais j'ai l'impression que tu dis que :
@totor, mon tuteur maitrise assez bien cygwin et ça a l'air assez pratique , mais pour mon sujet même lui n'y arrive pas smile
ton sujet, c'est bien faire une copie des home en fonction du jour de la semaine ? Si oui, ton tuteur "maîtrise" cygwin, mais ne sait pas faire ça, et te demande d'utiliser cygwin (que tu es juste en train d'apprendre), pour ensuite lancer un batch (?), tout ça pour assurer les sauvegardes de la boîte ? Je dois avoir louper quelque chose :-|
Dernière modification par ehmicky (Le 28/10/2010, à 18:36)
Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?
Hors ligne
#14 Le 29/10/2010, à 08:26
- serged
Re : bash
Alors voilà mon bash sera comme ça je pense
#! /bin/bash date = 'date +%a' echo $dd $ if [[ $dd =="Mon" ]]; then echo "Lundi; elif [[ $dd =="Tue" ]]; then echo "Mardi" elif [[ $dd =="Wed" ]]; then echo "Mercredi"
et ainsi de suite , comment je peu faire pour qu'ensuite il lance mon batch et que donc il backup dans le dossier et que je souhaite qui porte le nom du jour ?
Merci
Plutôt :
date=`date "+%a"`
echo $date
if [[ $$date="Mon." ]]; then echo "Lundi"
#etc.
- Mettre la fonction entre ` ` (quotes inverses, AltGr-7 sur un clavier français)
- Mettre les paramètres entre " "
- Un point après le nom du jour
- Ne pas se tromper de variable :-)
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#15 Le 29/10/2010, à 08:48
- credenhill
Re : bash
hello
autre méthode
$ s=(lundi mardi mercredi jeudi vendredi samedi dimanche)
$ j=${s[$(date +%u)-1]} ; echo $j
vendredi
Hors ligne
#16 Le 29/10/2010, à 20:13
- tshirtman
Re : bash
ce serait pas mal d'expliciter un peu cette méthode… je suis assez aguerrie en bash, et elle m'apparait difficile à comprendre, à fortiori pour un débutant! (oui j'ai finis par comprendre les remplacement avec ${} plus l'execution avec $()… mais bon)
Dernière modification par tshirtman (Le 29/10/2010, à 20:14)
Hors ligne
#17 Le 30/10/2010, à 09:26
- credenhill
Re : bash
on crée un tableau s de 7 éléments, indexé de 0 à 6
s=(lundi mardi mercredi jeudi vendredi samedi dimanche)
${s[X]} cette syntaxe retourne l'élément X du tableau s
$(date +%u) retourne le No du jour de la semaine avec lundi=1
${s[No du jour -1 ]} retourne le jour de la semaine
Hors ligne
#18 Le 30/10/2010, à 09:58
- Totor
Re : bash
Bonjour,
2 astuces
Pour éviter de faire le -1, on peut procéder ainsi
s=([1]=lundi [2]=mardi [3]=mercredi [4]=jeudi [5]=vendredi [6]=samedi [7]=dimanche)
# ou encore
s=( "" lundi mardi mercredi jeudi vendredi samedi dimanche)
-- Lucid Lynx --
Hors ligne
Pages : 1