bonjour,
je voudrais faire un script en shell de bourne, et dans ce script, je voudrais affecter le résultat de la commande date dans une variable quelqconque (par exemple $var).
comment dois je faire ?
merci.
bonjour,
je voudrais faire un script en shell de bourne, et dans ce script, je voudrais affecter le résultat de la commande date dans une variable quelqconque (par exemple $var).
comment dois je faire ?
merci.
--
Dépanneur Informatique à Domicile dans le Valenciennois
https://www.depannage-informatique-valenciennes.site/
Ce sont des back-quotes ou back-ticks, obtenus avec [Alt Gr]+[7]
Code : Sélectionner tout - Visualiser dans une fenêtre à part var=`date`
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
ok, merci bcp.
mais une fois affecté à la variable ($var), comment fait on pour isoler des parties de la date ? y'a t il un equivalent de regexp en shell de bourne ?
--
Dépanneur Informatique à Domicile dans le Valenciennois
https://www.depannage-informatique-valenciennes.site/
Deux solutions :
- - tailler dans la date à coup de cut/awk/perl
- utiliser la spécification de format de la fonction date pour n'avoir que ce qui nous intéresse.
La première méthode est à utiliser quand on a plusieurs parties à récupérer dans la même date.
La seconde méthode est adaptée si l'on veut juste récupérer une info donnée. Elle repose sur le fonctionnement du date de GNU et de son oprion de formattage (des trucs du genre "+(%d) %B").
En outre, la seconde méthode ne dispense pas forcément de faire des cut ... elle peut même les faciliter en plaçant dans la date des délimiteurs choisis entre les différentes valeurs sorties.
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
ok, je vais essayer avec cut/awk/perl, mais je ne connais pas encore la syntaxe pour cette commande. est-ce "cut", "awk" ou "perl" la commande ?
--
Dépanneur Informatique à Domicile dans le Valenciennois
https://www.depannage-informatique-valenciennes.site/
j'utilise unix dans une université, et je ne suis pas sur que gawk est installé.
par contre, cut l'est.
je dis cela car en ayant tapé man awk, il n'y a pas de documenttation, il y'en a pour cut.
--
Dépanneur Informatique à Domicile dans le Valenciennois
https://www.depannage-informatique-valenciennes.site/
voici mon code, mais je sais qu'il n'est pas terrible car il confondrait mardi et mars.
si quelqu'un a une meilleure soluce, merci.
de plus, il n'affiche pas non plus le numéro du jour dans le mois, ni l'année
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #!/bin/sh var=`date` for i in $var do case $i in lun) jour=Lundi;; mar) jour=Mardi;; etc... esac case $i in jan) mois=janvier;; mar) mois=mars;; etc... esac done echo $jour $mois
--
Dépanneur Informatique à Domicile dans le Valenciennois
https://www.depannage-informatique-valenciennes.site/
je n'ai pas le droit d'utiliser du perl, car c'est un cours de systeme d'exploitation, ce doit etre en langage shell de bourneEnvoyé par 2Eurocents
--
Dépanneur Informatique à Domicile dans le Valenciennois
https://www.depannage-informatique-valenciennes.site/
Juste pour savoir ...
Quel est l'unix ?
Que donne cette commande ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part date --version
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
date coreutils 5.2.1
2004 écrit pas david mackenzie, free software foundation
par contre, pour connaitre la version d'unix ? quelle est la commande ?
je crois que c'est une debian (avant ce devait etre un sco unix)
--
Dépanneur Informatique à Domicile dans le Valenciennois
https://www.depannage-informatique-valenciennes.site/
Alors c'est bien le GNU date !Envoyé par harlock59
Regarde le man de date, à la partie spécification de format. Tu y verras tout l'intérêt de faire unCa permet, ensuite, d'utiliser cut à loisir, sur des informations pertinentes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part date "+%A %B"
Envoyé par harlock59permet déjà de se faire une bonne idée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part uname -a
P.S. Juste pour info, c'est un cours système dans quel établissement ?
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
en effet, j'ai trouvé une solution en faisant ceci:
mais j'aimerais quand meme en savoir plus sur cut/awk/perl
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 jour=date +%A num_jour=date +%d mois=date +%B annee=date +%Y echo " " echo aujourd"'"hui, nous sommes le echo $jour $num_jour $mois $annee echo " "
y'a t il des pages de tuto sur cette commande sur le net ?
car perl est un langage a part entiere, non ?
peut on utiliser cut/awk/perl en shell de bourne ?
merci.
--
Dépanneur Informatique à Domicile dans le Valenciennois
https://www.depannage-informatique-valenciennes.site/
Cette démarche, pour satisfaisante qu'elle est, possède une (toute petite) vulnérabilité ...Envoyé par harlock59
Tu fais plusieurs appels successifs à date pour récupérer les différentes portions de l'information. Le problème, c'est que le temps passe (un peu) entre deux appels.
C'est vrai que la probabilité que la date change pendant l'exécution d'un tel script est minime, mais elle n'est pas totalement nulle.
C'est pourquoi il est préférable de ne faire qu'un appel à date qui récupère toutes les informations d'un coup :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 infodate=date +%A:%d:%B:%Y jour=`echo $infodate | cut -f 1 -d ":" num_jour=echo $infodate | cut -f 2 -d ":" mois=echo $infodate | cut -f 3 -d ":" annee=echo $infodate | cut -f 4 -d ":"cut, awk et perl sont trois outils/commandes distinctes.Envoyé par harlock59
Aucune de ces trois commande n'est une commande native du shell. Ce sont trois commandes externes.
Cut est une commande qui permet le découpage en champs d'une ou plusieurs lignes de textes.
Awk est un langage de traitements plus complexes. On peut soit écrire des scripts awk, soit invoquer awk en lui passant un traitement simple à faire depuis la ligne de commande.
Perl est dans le même cas que awk. Soit on fait un script autonome, soit on écrit un truc qui tient en une ligne pour faire le traitement qui nous intéresse.
Tous ces outils peuvent, bien sûr, être invoqués depuis un shell de bourne.
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
Envoyé par harlock59mais alors comment se fait-il qu'elle fonctionne (cut) de maniere naturelle dans un script shell (sh)Envoyé par 2Eurocents
je crois que j'ai compris: elles ont été rajoutées depuis la création du shell de bourne, c'est çà ?Envoyé par 2Eurocents
--
Dépanneur Informatique à Domicile dans le Valenciennois
https://www.depannage-informatique-valenciennes.site/
les examples des pages de man, à la limite ...Envoyé par harlock59
Parce que son chemin d'accès est dans le contenu de la variable d'environnement $PATH.Envoyé par harlock59
Toute commande externe trouvable par les répertoires contenus dans le $PATH fonctionnera (presque) comme si elle était intégrée au shell.
Les commandes natives du shell sont celles dont on trouve la liste dans le man de sh (ou de bash, à la limite).
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
de chez moi (sous mac os x.3 panther), ça donne:
uname -v
Darwin Kernel Version 7.9.0: Wed Mar 30 20:11:17 PST 2005; rootnu/xnu-517.12.7.obj~1/RELEASE_PPC
mais à la fac, j'ai pas eu le temps de regarder (et comme c'est de la fac que je bossais, tant pis...).
--
Dépanneur Informatique à Domicile dans le Valenciennois
https://www.depannage-informatique-valenciennes.site/
j'ai lu la page man de cut, et je voulais juste savoir si au lieu de faire 4 cut sur 4 lignes successives, on ne pouvait pas plutot faire:
vu que c'est à chaque fois le meme délimiteur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 var=date +%A:%d:%B:%Y cut -f 1-4 -d ":" $var echo
en fait, non, c'est bon, j'ai compris pkoi ce n'est pas possible, c'est parceque sinon, on se retrouve avec un seule variable et donc ça ne sert plus à rien d'avoir fait un cut.
--
Dépanneur Informatique à Domicile dans le Valenciennois
https://www.depannage-informatique-valenciennes.site/
sur mac, c'est [option-4] (ou encore [alt-'], mais alt=option sur mac et ' et 4 sont sur la meme touche...;-))Envoyé par 2Eurocents
--
Dépanneur Informatique à Domicile dans le Valenciennois
https://www.depannage-informatique-valenciennes.site/
oui c'est l'une des raisons, outre la lisibilité, qui fait que la syntaxe ACTUELLE est :Envoyé par harlock59
de plus cette syntaxe est plus logique dans la mesure ou $VAR est le resultat d'un test ou lecture de VAR tout comme $(commande) et le test du RESULAT
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $(date)
Je devrais pourtant le savoir, à force de le lireEnvoyé par MarcG
On ne se défait pas comme ça de ses plus anciennes habitudes ...
Heureusement pour moi que la syntaxe "old style" (dixit le man) est encore supportée.
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager