2010-09-28 6 views
2

Le shell par défaut sur le système est csh mais je veux écrire un script dans bash. Comment écrire un script qui exécutera bash et ensuite convertir en csh à la fin.Comment modifier les coquilles dans le script

J'ai essayé, mais ça ne marche pas:

bash 
var=Hello 
echo $var 
csh 
+0

Avec le fichier DOS, vous pourriez avoir besoin à vous soucier de la commutation de retour (si je ne suis pas sûr que le concept applique correctement même là). Avec Unix, vous n'avez pas à vous en préoccuper. –

Répondre

2

Vous n'avez plus besoin de changer de coquille. Lorsque le script est exécuté, il est exécuté par un sous-shell (qui se termine à la fin du script) et le shell parent reste inchangé. Ainsi, comme cela a déjà suggéré, la seule chose que vous avez à faire est que le script est exécuté par le shell correct, et le « tralala » est la façon de le faire:

#!/bin/bash 
var=Hello 
echo $var 

C'est tout ce qu'il faut.

2

Define à l'aide du au début de votre fichier bang sha

#!/bin/bash 

.

+0

Pour revenir à csh à la fin, j'utiliserais alors # #/bin/csh'? – Elpezmuerto

+1

Non, à la fin de l'exécution, votre script retournera au shell par défaut, dans votre cas csh. –

3

La commande que vous cherchez est exit. Lorsque vous tapez sur le clavier, utilisez exit au lieu de csh pour revenir à csh. Lorsque vous avez entré csh, cela a démarré une nouvelle session csh en plus des sessions csh et bash déjà en cours d'exécution.

%bash 
$ var=Hello 
$ echo $var 
Hello 
$ exit 
exit 
% 

Comme d'autres l'ont dit, lors de l'utilisation d'un script:

#! /bin/bash 
var=Hello 
echo $var 
exit # You don't need exit; but it's okay here. 
Questions connexes