#1 Le 03/07/2022, à 11: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, à 11: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, à 11: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, à 12: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 ?
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#4 Le 03/07/2022, à 13:43
- jplemoine
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 ?
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.
Déconnecté jusqu’à nouvel ordre
Hors ligne
#5 Le 03/07/2022, à 16:19
- sebastien31
Re : Insertion d'une date dans une chaine de caractere
Bonjour ça fonctionne bien merci
Hors ligne