2010-11-23 6 views
2

J'écris un script qui exécute une nouvelle session bash. Basé sur une certaine logique, il trouve un script d'initialisation qui sera utilisé pour le nouveau shell. Je me demande s'il y a une bonne façon de dire à la nouvelle session bash d'utiliser le script init trouvé pour l'initialisation en plus de les scripts d'initialisation du système. L'option --init-file semble appeler un fichier de remplacement plutôt qu'un fichier supplémentaire.Plusieurs fichiers d'initialisation pour une nouvelle session Bash

Actuellement, j'ai une configuration désordonnée avec une variable d'environnement contenant le chemin d'accès au script d'initialisation trouvé qui provient d'un fichier d'initialisation wrapper, avec les fichiers système. Est-ce que quelque chose comme
exec bash --init-file "/etc/profile;~/.bashrc;${myInit}" est possible?

Merci, Andrew

+0

Je ne crois pas avoir assez de « points » pour commenter la réponse de withoutasound, donc je vais le faire ici. Je pense que votre suggestion est similaire au fichier "wrapper init" avec lequel je travaille actuellement. Ce que j'aimerais faire, c'est trouver tous les fichiers dont j'ai besoin au début. – ajwood

Répondre

3

Cette une bonne chance de travailler:

exec bash --init-file <(cat /etc/profile ~/.bashrc "${myInit}") 
0

Je ne suis pas en mesure de tester cela sur ma machine, mais vous pourriez peut-être passer un .bashrc personnalisé ou .bash_profile à votre sous-shell, l'approvisionnement du fichier init avec quelque chose comme

if [ -f path_to_init ]; then 
    . path_to_init_file 
fi 
Questions connexes