Fedora-Fr - Communauté francophone Fedora - Linux

Communauté francophone des utilisateurs de la distribution Linux Fedora.

  

Dernière news : Fedora Linux 37 est disponible !

#1 05/11/2022 19:52:05

Max-Pol
Membre
Inscription : 28/10/2020
Messages : 35

[Résolu] Scripting - Stocker une commande dans une variable

Bonjour tout le monde

J’ai un script bash qui sauvegarde des données avec Rsync. Données contenus dans plusieurs dossiers différents.

J’ai une fonction qui contient la même commande Rsync pour les différents dossiers. Les chemins source et destination sont dans des variables.

function SauvData(){
    rsync -ah --delete-after "$DossierSource1" "$DossierDestination1"

    rsync -ah --delete-after "$DossierSource2" "$DossierDestination2"

    rsync -ah --delete-after "$DossierSource3" "$DossierDestination3"
}

Je voudrais placer la commande rsync dans une variable pour éviter de la répéter :

RsynCmd="rsync -ah –delete-after" 

function SauvData(){
    "$RsynCmd" "$DossierSource1" "$DossierDestination1"

    "$RsynCmd"  "$DossierSource2" "$DossierDestination2"

    "$RsynCmd"  "$DossierSource3" "$DossierDestination3"
}

J’ai essayé plusieurs écritures, mais aucune ne fonctionne :

RsynCmd="rsync -ah –delete-after" 

RsynCmd=’rsync -ah –delete-after’

RsynCmd=$(rsync -ah –delete-after)

J’ai systématiquement l’erreur

rsync -ah --delete-after : commande introuvable 

C'est probablement toute bête, mais je sèche, donc si quelqu’un peut m’aider à comprendre ce qui ne fonctionne pas smile

Merci beaucoup.


signature-forum.png

Hors ligne

#2 05/11/2022 22:01:00

VINDICATORs
RédactWikix and the graphicatorix!
Modérateur
Lieu : Toulouse(31) France
Inscription : 23/11/2004
Messages : 18 984
Site Web

Re : [Résolu] Scripting - Stocker une commande dans une variable

Mets le chemin complet de la commande.


AMD R7 5800x X470 64Go DDR4 3.6Ghz, RX5700XT+AMD R7 2700x A320 + 32Go DDR4 3.2Ghz, rx6500xt 4Go
AMD R5 2600 A320, 32Go DDR4 2.9Ghz,1030GT 2Go + AMD A6 9500 A320, 16Go DDR4 2.1Ghz
ARM Rpi4 4Go, à venir Pine64 2xQuartzB 2/4Go

Hors ligne

#3 06/11/2022 16:03:39

Max-Pol
Membre
Inscription : 28/10/2020
Messages : 35

Re : [Résolu] Scripting - Stocker une commande dans une variable

Bonjour,

Tout d’abord, je suis désolé d’avoir posté dans la mauvaise rubrique, je viens de m'en apercevoir. Je voulais poster dans  Fedora Cloud & Fedora Server. Bref.

Merci pour la réponse rapide qui est très juste

J’ai finalement trouvé d’où venait le problème, il faut utiliser la commande eval devant la variable.

Source : https://www.linuxshelltips.com/store-li … -variable/


RsynCmd="/usr/bin/rsync -ah --delete-after"

function SauvData(){
    eval "$RsynCmd" "$DossierSource1" "$DossierDestination1"

    eval "$RsynCmd"  "$DossierSource2" "$DossierDestination2"

    eval "$RsynCmd"  "$DossierSource3" "$DossierDestination3"
}

Ça fonctionne correctement maintenant.

Sujet indiqué comme résolu.

Merci smile


signature-forum.png

Hors ligne

Pied de page des forums