Synchronizowanie profilu bash między komputerami

12

Mam mnóstwo rzeczy w moim .bash_profile. Problem polega na tym, że używam ~ 3 komputerów bardzo często i mam dość kopiowania wklejonych moich preferencji wszędzie. Dwa z nich działają pod Ubuntu 10.10, a jeden z systemem OSX. Zastanawiałem się, czy istnieje sposób na użycie Dropbox do udostępniania pojedynczego pliku prefs. Na przykład, kiedy zaczyna się bash, powiedz, żeby to sprawdził ~/Dropbox/Bash/.bash_profile?

Chociaż czy mógłbym też powiedzieć emacsowi, żeby w ~/Dropbox/Emacs/.emacsjakiś sposób zajrzał?

Josh
źródło
2
Sprytne pytanie!
msanford,
Nie mogę komentować (świetnej) wybranej odpowiedzi. Nie wiem, czy jest to coś specyficznego dla osx / mac, ale musiałem wprowadzić kilka zmian, aby działało DROPBOX_PROFILE = '~ / Dropbox / Bash / .bash_profile' if [-f $ DROPBOX_PROFILE]; następnie . $ DROPBOX_PROFILE fi Powinno być DROPBOX_PROFILE = "$ HOME / Dropbox / Bash / .bash_profile" jeśli [-f $ DROPBOX_PROFILE]; następnie . $ DROPBOX_PROFILE fi Nadzieja, która pomaga.
Jason
Żeby było bardziej zrozumiałe: Poprawki @ Jasona polegają na zamianie pojedynczych cudzysłowów na podwójne cudzysłowy i zamianie „~” na „$ HOME” w definicji DROPBOX_PROFILE
sprugman

Odpowiedzi:

17

~ / .bash_profile

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

~ / .emacs

(load "~/Dropbox/Emacs/.emacs")
Andrejs Cainikovs
źródło
3
Osobiście uważam, że sourcejest to bardziej czytelne (i dostępne w Google) niż operator kropki, ale jest to twoja odpowiedź, więc nie będę go edytować. Poza tym +1 za dobrą odpowiedź.
Hello71
@ Hello71 Czy możesz sourcetrochę rozwinąć sprawę . Jestem zaintrygowany. Dzięki!
Joshua Pinter
@ Hello71 Ach, chyba wiem, co masz na myśli. I całkowicie się zgadzam. używanie .jest o wiele bardziej tajemnicze niż używanie source.
Joshua Pinter
Jeśli masz miejsce na swojej ścieżce, na przykład gdy masz biznesowy Dropbox i chcesz użyć swojego osobistego, np. Dropbox (Personal)Będziesz musiał użyć podwójnych cudzysłowów podczas odwoływania się do zmiennej, np "$DROPBOX_PROFILE".
Joshua Pinter
6

Co powiesz na to, co pozwala uniknąć specjalnych plików konfiguracyjnych, które dostarczają wersje Dropbox?

$ ln -s ~/Dropbox/Bash/.bash_profile ~/.bash_profile
$ ln -s ~/Dropbox/Emacs/.emacs ~/.emacs
garyjohn
źródło
5

W zwykłym pliku .bash_profile po prostu wywołaj ~ / Dropbox / Bash / .bash_profile.

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

W rzeczywistości prawdopodobnie chcesz nazwać udostępniony plik czymś innym, a przynajmniej nie uczynić go ukrytym plikiem.

Andrew Fleenor
źródło
3

Myślę, że dostaniesz to, czego chcesz, po prostu sprawdź, czy plik istnieje, jeśli tak, zgłoś go.

w $HOME/.bash_profile

[ -f $HOME/Dropbox/Bash/.bash_profile ] && source $HOME/Dropbox/Bash/.bash_profile
Rich Homolka
źródło
0

komentarz do: https://superuser.com/a/224204/401026 (Odpowiedź Andrejsa Cainikovsa)

moje zmiany dla systemu macOS 10.12.6 Sierra, iTerm2 Build 3.2.0, Terminal Version 2.7.3 (388.1.1):
- zastąpiono tyldą
- zamienia pojedyncze cudzysłowy na podwójne cudzysłowy

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

przepraszam: nie mogłem pisać komentarzy, więc muszę dodać kolejną odpowiedź

Tinu1976CH
źródło