2010-03-31 3 views
0

Je suis nouveau dans le monde Linux/Unix. Je voudrais déclencher une marque sur une machine distante. Pour cela j'ai créé un petit script sur la machine distante que je veux exécuter via ssh.Obtention de l'environnement depuis .profile lors de l'exécution d'une commande via ssh

Le script ressemble à ceci:

echo "loading .profile" 
. ~/.profile 
echo "profile loaded" 
echo "starting gmake" 
cd ~/helloWorld/ 
gmake all 

J'invoque le script avec commande suivante ssh:

ssh [email protected] "cd ~/helloWorld && ./myscript.sh" 

Quand j'exécuter cette commande ma machine se connecte à la machine distante. Il me dit que le profil est chargé et ensuite je dois appuyer sur [CTRL] + [D] pour continuer avec le script. Il semble donc que la commande . ./myscript.sh crée quelque chose comme un nouveau terminal. Je ne veux pas de ce comportement. Je voudrais utiliser la commande ssh pour automatiser le processus de construction sans avoir besoin de fermer le terminal manuellement. Y a-t-il un moyen de faire cela?

vous remerciant par avance, John

Répondre

1

./source n'invoque pas un nouveau shell. Il exécute les commandes du script dans le shell actuel. Quelque chose d'autre ne va pas.

+0

Oh merci beaucoup. Tu as raison. Le . La commande/source n'invoque pas un nouveau shell. Mais dans mon cas, il l'a fait. J'ai un grand fichier .profile par défaut de mon entreprise et au même endroit un nouveau bash est ouvert là. Sans cette ligne tout fonctionne bien. Merci !!! – John