Menyinkronkan profil bash antara komputer

12

Saya punya banyak hal di .bash_profile saya. Masalahnya adalah, saya menggunakan ~ 3 komputer sangat sering, dan saya lelah harus menyalin tempel preferensi saya di mana-mana. Dua di antaranya menjalankan Ubuntu 10.10, dan satu menjalankan OSX. Saya bertanya-tanya apakah ada cara untuk menggunakan Dropbox, untuk berbagi file prefs tunggal. Seperti, ketika bash dimulai, katakan itu untuk memeriksa ~/Dropbox/Bash/.bash_profile?

Meskipun, bisakah saya juga memberitahu emacs untuk mencari di suatu tempat ~/Dropbox/Emacs/.emacs?

Josh
sumber
2
Pertanyaan pintar!
msanford
Sepertinya saya tidak bisa mengomentari jawaban yang dipilih (hebat). Saya tidak tahu apakah ini sesuatu yang spesifik untuk osx / mac tapi saya perlu membuat beberapa perubahan agar bisa berfungsi DROPBOX_PROFILE = '~ / Dropbox / Bash / .bash_profile' if [-f $ DROPBOX_PROFILE]; kemudian . $ DROPBOX_PROFILE fi Haruslah DROPBOX_PROFILE = "$ HOME / Dropbox / Bash / .bash_profile" jika [-f $ DROPBOX_PROFILE]; kemudian . $ DROPBOX_PROFILE fi Harapan yang membantu.
Jason
Hanya untuk membuatnya lebih jelas: @ tweak Jason adalah untuk mengganti tanda kutip tunggal dengan tanda kutip ganda dan untuk mengganti '~' dengan '$ HOME' dalam definisi DROPBOX_PROFILE
sprugman

Jawaban:

17

~ / .bash_profile

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

~ / .emacs

(load "~/Dropbox/Emacs/.emacs")
Andrejs Cainikovs
sumber
3
Saya pribadi merasa bahwa sourceitu lebih mudah dibaca (dan googlable) daripada operator titik, tetapi ini adalah jawaban Anda dan saya tidak akan mengeditnya. Selain itu, +1 untuk jawaban yang bagus.
Hello71
@ Hello71 Bisakah Anda menguraikan sourcesedikit. Saya tertarik. Terima kasih!
Joshua Pinter
@ Hello71 Ah, saya pikir saya tahu apa yang Anda maksud sekarang. Dan saya sepenuhnya setuju. menggunakan .jauh lebih samar daripada menggunakan source.
Joshua Pinter
Jika Anda memiliki ruang di jalur Anda, seperti ketika Anda memiliki Dropbox bisnis dan ingin menggunakan yang pribadi, misalnya Dropbox (Personal), Anda harus menggunakan tanda kutip ganda ketika merujuk variabel, seperti "$DROPBOX_PROFILE".
Joshua Pinter
6

Bagaimana dengan ini, yang menghindari memiliki file konfigurasi khusus yang sumber versi Dropbox?

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

Dalam .bash_profile biasa Anda, panggil saja ~ / Dropbox / Bash / .bash_profile.

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

Sebenarnya, Anda mungkin ingin memanggil file yang dibagikan itu sesuatu yang lain, atau setidaknya tidak menjadikannya file yang tersembunyi.

Andrew Fleenor
sumber
3

Saya pikir ini akan mendapatkan apa yang Anda inginkan, cukup periksa untuk melihat apakah file itu ada, jika demikian, sumberilah.

di $HOME/.bash_profile

[ -f $HOME/Dropbox/Bash/.bash_profile ] && source $HOME/Dropbox/Bash/.bash_profile
Homolka yang kaya
sumber
0

komentar untuk: /superuser//a/224204/401026 (Jawaban Andrejs Cainikovs)

perubahan saya untuk macOS 10.12.6 Sierra, iTerm2 Build 3.2.0, Terminal Versi 2.7.3 (388.1.1):
- diganti tilde
- ganti kutip tunggal dengan kutip ganda

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

maaf: saya tidak bisa menulis komentar, jadi saya harus menambahkan jawaban lain

Tinu1976CH
sumber