Bjr
Je continus ds mon histoire.
Je cherche à lancer un .sh depuis un .bat.
Ds mon .sh j'ai le script suivant:
#!/bin/sh
mkdir `date +%A_%e_%B_%Y`
Ds mon .bat j'ai le script suivant
CALL script1.sh
Et donc lorsque je lance mon .bat ds une invitemsdos, mon fichier sh s'ouvre mais ne se lance pas.
Pourquoi
Merci d'avance.
Forum Programmation.shell lancer un fichier .sh depuis un fichier .bat
22
fév.
2006
# sous windows ?
Posté par fasthm . Évalué à 1.
ms-dos, qui ne comprend pas la syntaxe
de ton shell script.
#! ne signifie rien pour ms-dos
La gent féminine, pas la "gente", pas de "e" ! La gent féminine ! Et ça se prononce comme "gens". Pas "jante".
# cygwin
Posté par Thierry GRAUSS . Évalué à 1.
Bash va reconnaiître ton script.
Il suffira donc taper (si bash a été installé dans le PATH de DOS) :
bash script1.sh
il est inutile de créer un .bat pour ça (si tu y tiens, tu peux mettre CALL bash script1.sh).
[^] # Re: cygwin
Posté par Eric GERMAIN . Évalué à 0.
#!/bin/sh
mkdir `date +%A_%e_%B_%Y`
xcopy /s /e z:\test c:\cygwin\bin\`date +%A_%e_%B_%Y`
Donc je cherche à copier des fichiers dans le repertoire que je viens de créer, mais avec ma syntaxe actuelle cela ne marche pas.
Peux tu m'aider?
[^] # Re: cygwin
Posté par Thierry GRAUSS . Évalué à 1.
D'après les tests que j'ai fait, cygwin fourni la commande Unix "date", mais DOS en a aussi une avec une syntaxe différente. Donc pour lancer ton script, créé une icône du shell cygwin sur le bureau (chez moi le raccourci pointe vers C:\cygwin\cygwin.bat) et lance le shell cygwin (une fenêtre texte s'ouvrira avec bash comme shell). De là tu pourras lancer ton script
#!/bin/sh
mkdir `date +%A_%e_%B_%Y`
cp -R z:\test c:\cygwin\bin\`date +%A_%e_%B_%Y`
Le script ci-dessus va copier (si le répertoire que tu as créé se trouve dans c:\cygwin\bin\) le répertoire test dans le répertoire créé. Le résultat sera : c:\cygwin\bin\`date +%A_%e_%B_%Y`\test (et tous les fichiers et répertoires dans test)
Si tu veux copier le contenu de z\test dans c:\cygwin\bin\`date +%A_%e_%B_%Y` c'est le script suivant qu'il faut :
#!/bin/sh
cp -R z:\test c:\cygwin\bin\`date +%A_%e_%B_%Y`
Ici le répertoire `date +%A_%e_%B_%Y` n'existe pas donc il sera créé et rempli avec le contenu de z:\test
Nota : cp -R : copie du répertoire Récursivement (d'où le -R) donc avec tous les sous-répertoires et fichiers
Fais un : "man cp" pour avoir une documentation sur les options possibles de cp (conservation des droits par exemple). Pour un backup tu peux utiliser cette commande à la place de celle indiquée dans le script : cp -a z:\test c:\cygwin\bin\`date +%A_%e_%B_%Y`
Autre chose, quand on dit "ça ne marche pas" et que l'on veut de l'aide, il faut donner plus d'informations (message d'erreur, commande tapée ...)
[^] # Re: cygwin
Posté par Eric GERMAIN . Évalué à 0.
peux tu me dire ce qu'il en est
/usr/bin/script1.sh: line 3: unexpected EOF whilelooking for matching `'`
/usr/bin/script1.sh: line 4: syntax error: unexpected end of file
j'ai essayé de changer ' par `ou ".
cela ne change pas
# Solutions
Posté par Eric GERMAIN . Évalué à 0.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.