2011-07-15 3 views
1

en se demandant si quelqu'un sait comment exécuter une commande à partir de bash sans en utilisant des scripts. Par exemple, j'utilise Cygwin et exécute cygwin.bat. Fondamentalement, le script par défaut est:Exécuter la commande au démarrage de cygwin (à partir de la ligne de commande)

bash --login -i 

Ce qui est bien pour moi la plupart du temps. Mais parfois, je veux passer dans un répertoire que je veux être la valeur par défaut. Par exemple:

cygwin.bat C:\ 

Idéalement, je changerais mon répertoire (de bash/cygwin) en répertoire C :. J'ai essayé de changer le fichier cygwin.bat à:

if [%1%] EQU [] (bash --login -i) 
if [%1%] NEQ [] (bash -i -c "cd %1%") 

Mais le -c "cd %1%" exécute, puis quitte immédiatement. Donc, ce que je voudrais, c'est un drapeau comme -c, mais cela ne quitte pas immédiatement le shell. Espérons que je n'ai pas manqué quelque chose de vraiment évident ... thx.

+0

ne pouvez-vous pas simplement créer une fonction bash qui change le répertoire en c: \ lors de l'invocation: 'function cdrive {cd/cygdrive/c; } 'qu'essayez-vous d'accomplir? –

+0

Peut-être qu'il ne veut pas créer une fonction pour chaque répertoire possible dans lequel il veut entrer ... – carlpett

Répondre

2

Vous lui ajoutez un ;bash, c'est-à-dire bash -i -c "cd %1%; bash". Pas très joli cependant, mais je ne connais pas de meilleure solution.

Questions connexes