Synchronisation du profil bash entre ordinateurs

12

J'ai des tonnes de choses dans mon .bash_profile. Le problème est que j'utilise ~ 3 ordinateurs très fréquemment et je suis fatigué de devoir copier-coller mes préférences partout. Deux d'entre eux exécutent Ubuntu 10.10 et un exécute OSX. Je me demandais s'il y avait un moyen d'utiliser Dropbox, de partager un seul fichier prefs. Comme, quand bash commence, dites-lui de vérifier ~/Dropbox/Bash/.bash_profile?

Mais pourrais-je aussi dire à emacs de regarder d'une ~/Dropbox/Emacs/.emacsmanière ou d'une autre?

Josh
la source
2
Question intelligente!
msanford
Je n'arrive pas à commenter la (excellente) réponse sélectionnée. Je ne sais pas si c'est quelque chose de spécifique à osx / mac mais j'avais besoin de faire quelques changements pour que cela fonctionne DROPBOX_PROFILE = '~ / Dropbox / Bash / .bash_profile' if [-f $ DROPBOX_PROFILE]; puis . $ DROPBOX_PROFILE fi Doit être DROPBOX_PROFILE = "$ HOME / Dropbox / Bash / .bash_profile" if [-f $ DROPBOX_PROFILE]; puis . $ DROPBOX_PROFILE fi J'espère que ça aide.
Jason
Juste pour être plus clair: @ les ajustements de Jason consistent à remplacer les guillemets simples par des guillemets doubles et à remplacer «~» par «$ HOME» dans la définition de DROPBOX_PROFILE
sprugman

Réponses:

17

~ / .bash_profile

DROPBOX_PROFILE='~/Dropbox/Bash/.bash_profile'
if [ -f $DROPBOX_PROFILE ]; then
    . $DROPBOX_PROFILE
fi

~ / .emacs

(load "~/Dropbox/Emacs/.emacs")
Andrejs Cainikovs
la source
3
sourcePersonnellement, je pense que c'est plus lisible (et googlable) que l'opérateur point, mais c'est votre réponse et je ne vais donc pas le modifier. Autre que cela, +1 pour une bonne réponse.
Hello71
@ Hello71 Pouvez-vous développer sourceun peu. Je suis intrigué. Merci!
Joshua Pinter
@ Hello71 Ah, je pense que je sais ce que tu veux dire maintenant. Et je suis entièrement d'accord. l'utilisation .est beaucoup plus cryptique que l'utilisation source.
Joshua Pinter
Si vous avez un espace sur votre chemin, comme lorsque vous avez une Dropbox professionnelle et que vous souhaitez utiliser votre espace personnel, par exemple Dropbox (Personal), vous devrez utiliser des guillemets doubles pour référencer la variable, comme "$DROPBOX_PROFILE".
Joshua Pinter
6

Que diriez-vous de cela, qui évite d'avoir des fichiers de configuration spéciaux qui source les versions Dropbox?

$ ln -s ~/Dropbox/Bash/.bash_profile ~/.bash_profile
$ ln -s ~/Dropbox/Emacs/.emacs ~/.emacs
garyjohn
la source
5

Dans votre .bash_profile habituel, il vous suffit d'appeler ~ / Dropbox / Bash / .bash_profile.

#.bash_profile
. ~/Dropbox/Bash/.bash_profile # the '.' command runs a file.

En fait, vous voulez probablement appeler le fichier partagé quelque chose d'autre, ou du moins ne pas en faire un fichier caché.

Andrew Fleenor
la source
3

Je pense que cela obtiendrait ce que vous voulez, vérifiez simplement si le fichier existe, si oui, sourcez-le.

dans $HOME/.bash_profile

[ -f $HOME/Dropbox/Bash/.bash_profile ] && source $HOME/Dropbox/Bash/.bash_profile
Rich Homolka
la source
0

commentaire à: /superuser//a/224204/401026 (réponse d'Andrejs Cainikovs)

mes modifications pour macOS 10.12.6 Sierra, iTerm2 Build 3.2.0, Terminal Version 2.7.3 (388.1.1):
- tilde remplacé
- remplacer les guillemets simples par des guillemets doubles

DROPBOX_PROFILE="/Users/xxx/Dropbox/Bash/.bash_profile"
if [ -f $DROPBOX_PROFILE ]; then
    . $DROPBOX_PROFILE
fi

désolé: je n'ai pas pu écrire de commentaires, je dois donc ajouter une autre réponse

Tinu1976CH
la source