IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Script Linux date moins - 1


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Points : 68
    Points
    68
    Par défaut Script Linux date moins - 1
    Bonjour,

    Je cherche sans succès à afficher le numéro de jour de la semaine et le nom du jour de la semaine moins - 1.

    J'ai bien trouvé pour la date du jour mais je voudrais la même chose moins - 1.

    Exemple le script ci-dessous affiche bien le 05-vendredi mais je voudrais le 04-jeudi...

    Merci d'avance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #!/bin/sh
     
    sauve=`date +%A` 
    sauvenum=`date +%w`
     
    echo '0'$sauvenum'-'$sauve
     
    exit

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    Je viens de trouver le code suivant pour le numéro du jour de la semaine - 1 mais ne marche pas pour le nom du jour de la semaine.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sauve=$((`date +%w` - 1))
    echo $sauve
    j'obtiens bien le 4 (jeudi) sachant que nous sommes le vendredi...

    Je voudrais maintenant le nom du jour soit le jeudi 4.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    Bon vu qu'il y a plus personne qui ne réponde sur ce site !
    J’ai contourné le problème et voici la solution.
    Ça peut éventuellement aider.

    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
    18
     
    #!/bin/sh
     
    numj=$((`date +%w` - 1)) 
    namej=""
    case $numj in 
    "1") namej="lundi";;
    "2") namej="mardi";;
    "3") namej="mercredi";;
    "4") namej="jeudi";;
    "5") namej="vendredi";;
    "6") namej="samedi";;
    "7") namej="dimanche";;
    esac
     
    echo '0'$numj'-'$namej 
     
    exit

  4. #4
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date +'%A %u' -d'-1 day'
    jeudi 4
    A noter que dit
    %w day of week (0..6); 0 is Sunday
    Donc ton code où dimanche vaut 7 ne marchera pas.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  5. #5
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Citation Envoyé par poupy Voir le message
    Bon vu qu'il y a plus personne qui ne réponde sur ce site !
    Sa majesté poupy voudra bien excuser les mécréants qui peuplent quotidiennement ce forum d'avoir voulu dormir entre 7h39 et 8h52.

    Et si sa seigneurie s'en trouvait encore agacée, elle pourrait solliciter un devis auprès de professionnels rémunérés, comme par exemple un certain "Plumeau" qu'elle pourrait aller voir grâce à Google.

    Sinon, voici une autre syntaxe pour revenir d'un jour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ date +'%A %u' -d'1 day ago'
    jeudi 4
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    Merci beaucoup de vos réponses et désolé de mon premier message.
    Sa majesté poupy ! LOL

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    Bonjour Flodelarab,

    Désolé mais ça semble pas fonctionner.
    Merci d'avance.
    Voici l'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [root@srvlinux scripts]# echo $((date +`%A %u` -d`-1 day ago`))
    -bash: fg: %A : tâche inexistante
    -bash: -1 : commande introuvable
    0

  8. #8
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 382
    Points
    19 382
    Par défaut
    Bonjour,

    pourquoi ajoutes-tu un echo ?
    pourquoi as-tu remplacé les apostrophes (') par des backticks (`) ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    J'utilise echo juste pour contrôler si la ligne fonctionne avant de l'intégrer dans un script.
    pourquoi as-tu remplacé les apostrophes (') par des backticks (`) ?
    J'ai essayé les 2 sans succès
    Merci

  10. #10
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut
    Et si tu ne mets qu'une seule paire de parenthèses ?

    Nom : 無題.png
Affichages : 736
Taille : 56,4 Ko
    Images attachées Images attachées  

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    Je reste planter sur la ligne >...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [root@E12SHLORA01 scripts]# echo $((`date +'%A %u' -d'1 day ago'))
    >

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    Yes super ça marche...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [root@E12SHLORA01 scripts]# echo $(date +'%A %u' -d'1 day ago')
    lundi 1
    Merci beaucoup de votre aide, je vais pouvoir avancer un peu.
    Bonne journée à tous.

  13. #13
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut
    Heu, j'ai la berlue ou y'a encore tes doubles parenthèses ?

  14. #14
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 382
    Points
    19 382
    Par défaut
    qu'est-ce qui va pas ?
    tu copies ce qu'ont écrit ggnore et Flodelarab, et tu le colles dans xterm, tu verras la différence entre ce que tu écris et ce qu'ils ont écrit.

    et le echo il sert à quoi ?

    edit:
    nos messages ce sont croisés.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  15. #15
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    J'ai quand même une remarque. Ggnore a dit '-1 day'; j'ai dit '1 day ago'; mais personne n'a dit '-1 day ago'.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    Oui pas de souci Flodelarab, je me suis un peu mélangé les pinceaux avec les syntaxes...
    En tout cas merci beaucoup pour l’aide apporté qui me permet actuellement d’avancé dans mon scripts.
    Bien amicalement,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recuperer infos de la bdd depuis un script linux
    Par siteman dans le forum Linux
    Réponses: 2
    Dernier message: 13/07/2006, 15h00
  2. Question générale sur les scripts linux
    Par jejerome dans le forum Linux
    Réponses: 4
    Dernier message: 09/04/2006, 08h25
  3. Script linux
    Par Bj0 dans le forum Linux
    Réponses: 8
    Dernier message: 23/01/2006, 16h28
  4. requette where date="moins de 2 jours"
    Par nmerydem dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/05/2004, 16h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo