Mac os X Lion - Ditto & Variable

seboubou86

Membre junior
13 Septembre 2011
10
0
Bonjour,

J'ai un petit soucis avec un script qui ne fonctionne pas. le voici :

Bloc de code:
#! /bin/sh

day=$(date +%d)
month=$(date +%m) 
year=$(date +%Y)


source="/Users/sebastien/NetBeansProjects/toto/"
cible="/Volumes/ARGON_DISK/BACKUP_JAVA/toto/toto_${year}${month}${day}"


echo "--------------------------------------------------"
echo 'Backup the folder    : ' $source
echo 'Destination folder   : ' $cible
echo "--------------------------------------------------"

ditto "${source}" "${cible}"
La commande ditto ne fonctionne pas et ne donne cette erreur :

ditto: can't get real path for source


Maintenant je remplace simplement la dernière ligne de cette manière
Bloc de code:
ditto "/Users/sebastien/NetBeansProjects/toto/" "${cible}"
Voilà je pense que mon problème provient de l'utilisation des variables mais impossible à trouver la solution.

Merci a ceux qui m'aiderons.

PS au admin : J'ai posté ici car je ne voyais pas a quel endroit sa irai le mieux (forum de dév. ou logiciel ?)
 

bompi

El Moderador
Modérateur
Club MacG
12 Février 2004
41 915
3 156
(plutôt côté UNIX mais ça ira comme ça)

Et en faisant un export des variables ? Par ailleurs, il faudrait enlever l'espace dans le shebang.
 

seboubou86

Membre junior
13 Septembre 2011
10
0
Le shebang ? c'est la première ligne de code ? J'ai pas bien compris à quoi servait cette ligne si ce n'est à définir l'interpréteur de commande utilisé (par contre la différence entre les interpréteur....). Mais j'ai enlever l'espace.

Et l'export des variables, je vois pas comment on fait.

Désolé, je débute avec la ligne de commande.
 

bompi

El Moderador
Modérateur
Club MacG
12 Février 2004
41 915
3 156
Une petite formation au shell serait bienvenue, alors ?

Le shebang est la première ligne d'un script, qui permet de savoir quel interpréteur doit être utilisé pour exécuter le script. Le choix de l'interpréteur n'est pas indifférent : chaque shell a ses caractéristiques.

Pour l'export, c'est simple : rajouter 'export' devant leur déclaration :
Bloc de code:
export myvar="blablabla"
Cela étant, je ne vois pas trop ce qui ne va pas dans ton code (ça marche chez moi).
 

seboubou86

Membre junior
13 Septembre 2011
10
0
Alors j'ai testé avec l'export de la commande source (pour son instanciation) et cela ne change rien à mon problème.

Oui je suis en pleine formation :siffle:, dès que j'aurais un peu de temps je vais me documenter un peu mieux sur cette ligne commande, enfin surtout sur les principe de base. (je vien de windows, je connaissais un peu le DOS, mais c'est difficilement comparable^^)

Du coup, si cela fonctionne chez toi est-ce que cela ne pourrais pas venir de la configuration de mon terminal ?