2016-06-09 1 views
0

Je souhaite exécuter plusieurs commandes de "boussole" via un script shell dans Cygwin. On dirait que j'ai complètement oublié le script shell. Voilà ce que j'ai essayé:Comment exécuter plusieurs "boussole" à travers un script shell dans Cygwin?

#!/bin/bash 
sitea="/cygdrive/c/xampp/htdocs/sitea/themes/siteatheme/css/" 
siteb="/cygdrive/c/xampp/htdocs/siteb/themes/sitebtheme/css/" 
sitec="/cygdrive/c/xampp/htdocs/sitec/themes/sitectheme/css/" 
sited="/cygdrive/c/xampp/htdocs/sited/themes/sitedtheme/css/" 
sitee="/cygdrive/c/xampp/htdocs/sitee/themes/siteetheme/css/" 
sitef="/cygdrive/c/xampp/htdocs/sitef/themes/siteftheme/css/" 

for i in sitea siteb sitec sited sitee sitef 
    do 
    compass watch "$i" & 
    done 

Je reçois le message d'erreur suivant répété 6 fois:

$ C:\Installation\Ruby22-x64\bin\ruby.exe: No such file or directory -- /cygdrive/c/Installation/Ruby22-x64/bin/compass (LoadError) 

On dirait qu'il est incapable de trouver la commande compass mais quand je tape dans compass watch de la bash terminal, ça fonctionne bien. Comment puis-je réparer ça?

+0

Le message d'erreur est très clair. Vous avez dans le PATH une installation Windows ruby ​​qui ne peut pas comprendre le chemin cygwin – matzeri

+0

@matzeri Alors, comment puis-je résoudre ce problème? – user1448031

+0

Avez-vous installé cygwin ruby? Avez-vous '/ usr/bin /' dans le PATH avant les répertoires pas cygwin? Ce devrait être la valeur par défaut si vous n'avez pas redéfini PATH sur '.bash_profile' ou' .bashrc' – matzeri

Répondre

0

Corrigez cela en passant des chemins de style Windows à la boussole et en utilisant cygstart. essayer quelque chose comme ceci:

cygstart /cygdrive/c/Installation/Ruby22-x64/bin/compass watch $(cygpath -w $i)

cygstart passera le contrôle de shell Windows. cygpath -w convertira en chemin Windows.