Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/07/2022, à 12:29

sebastien31

Insertion d'une date dans une chaine de caractere

Bonjour à tous,
Je me permet de poster car je n'arrive pas a inserer une dante dans une chaine de caractere.
Voici mon code:

#!/bin/bash

mdp= $1
date_jour= date  +"%m-%y"

echo $date_jour


sudo mysqldump -useb31t -p$mdp db_adpa > "adpa-${date_jour}.sql"

Merci pour votre aide.

Hors ligne

#2 Le 03/07/2022, à 12:38

Tawal

Re : Insertion d'une date dans une chaine de caractere

Hello,

Tes affectations de variables ne sont pas correctes :

#!/bin/bash

mdp="$1"
date_jour="$(date  +"%m-%y")"

echo "$date_jour"


sudo mysqldump -useb31t -p"$mdp" db_adpa > "adpa-$date_jour.sql"

devrait suffire.
Mais si tu as besoin de sudo, c'est que ce n'est pas ton utilisateur qui devrait lancer ce script mais plutôt root.
Un petit test pour savoir si le script est lancé par root (sinon on sort avec message) :

if [ ! "$UID" -eq 0 ]
then
   echo "Non root : sortie" >&2
   exit 1
fi

Edit:
On peut simplifier ton script ainsi :

#!/bin/bash

if [ ! "$UID" -eq 0 ]
then
   echo "Non root : sortie" >&2
   exit 1
fi

mysqldump -useb31t -p"$1" db_adpa > "adpa-$(date +"%m-%y").sql"

Bon, ça manque de contrôles et de gestion des erreurs, mais c'est la base.

Edit2:
On peut utiliser tee pour rediriger la sortie de mysqldump vers un fichier et vers la sortie standard du terminal (si existant) :

mysqldump -useb31t -p"$1" db_adpa | tee adpa-"$(date +"%m-%y")".sql

Dernière modification par Tawal (Le 03/07/2022, à 12:52)


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#3 Le 03/07/2022, à 13:10

Watael

Re : Insertion d'une date dans une chaine de caractere

date_jour pour une variable qui ne contient que le mois et l'année ? hmm


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#4 Le 03/07/2022, à 14:43

jplemoine

Re : Insertion d'une date dans une chaine de caractere

Watael a écrit :

date_jour pour une variable qui ne contient que le mois et l'année ? hmm

Ce n'est pas logique mais ça fonctionne...
Toutefois, je suis accord avec toi : il est d'usage de nommer correctement ses variables.


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#5 Le 03/07/2022, à 17:19

sebastien31

Re : Insertion d'une date dans une chaine de caractere

Bonjour ça fonctionne bien merci

Hors ligne