Neden bashrc dosyasındaki değişiklikler yeni bir terminal penceresinde çalışmıyor?


1

Bashrc dosyasına bir takma ad eklemeye çalışıyorum. Bu konuda iyi olmadığım için attığım tüm adımları yazacağım.

nano ~/.bashrc

Dosyada bu vardı

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting

Bunun üzerine takma adımı ekledim

dropUpload(){
~/drop.sh upload $1 $2
}
alias dropU=dropUpload

Dosyayı kaydettikten sonra kaynak ile . ~/.bashrc

Aynı pencerede kodu kullanmayı denedim dropU first/url second/urlve çalıştı. Terminal penceresini kapattım ve yeni bir tane açtım, kod artık çalışmıyor. Aldığım hata

-bash: dropU: komut bulunamadı

Ben ise nanogeri dosyaya benim yeni kod yoktur. Dosyayı yeniden kaynaklandırırsam, kod çalışır. Bunu nasıl devam ettirebilirim?

Yanıtlar:


3

bence ~/.bash_profilebu kod

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

@Mark burada harika bir cevap var .

Bu vakayı OSX için Unix SSS bölümünde açıklayan bir bağlantı buldum .

Yazdı

Bash Başlangıç ​​Dosyaları

Bir "giriş kabuğu" başladığında, "/ etc / profile" ve ardından "~ / .bash_profile" veya "~ / .bash_login" veya "~ / .profile" dosyasını (hangisi varsa) okur - sadece birini okur Bunların, belirtilen sırayla onları kontrol).

Bir "oturum açmayan kabuk" başladığında, "/ etc / bashrc" dosyasını ve ardından "~ / .bashrc" dosyasını okur.

Bash "sh" adı ile çağrıldığında, Bourne kabuğunun ("sh") başlangıç ​​sırasını taklit etmeye çalıştığını unutmayın. Özellikle, "sh" olarak çağrılan giriş yapmayan bir kabuk varsayılan olarak herhangi bir nokta dosyasını okumaz. Ayrıntılar için bash man sayfasına bakın.


Birisi bana cevabımın neden oy kullandığını söyleyebilir mi?
binhsonnguyen

Bu benim için işe yaramadı. (Ben düşürmedim)
relidon

Öncelikle, .bashrcyeni terminal oturumunuzda otomatik olarak kaynaklandığını onaylıyoruz . Terminale basan .bashrcbasit bir takma ad eklemeye çalışabilir ve yeni bir terminal oturumunda çalışıp çalışmadığını görmek için onu aramayı deneyebilirsiniz. alias myEcho='echo Anubeloredelana'Anubeloredelana
binhsonnguyen

1
Burada @Mark tarafından verilen cevap % 100 doğrudur - Terminal kaynakları ~/.bash_profiledeğil ~/.bashrc. Aşağıdaki konularda doğru çizgiler eklendi Çifte kontrol ~/.bash_profile?
Ian C.

1
SABİT! Eklemek söyledi sonra if [ -f ~/.bashrc ]; then . ~/.bashrc fiben hem de ekleyerek fark etti ~/.bashrcve ~/.bash_profile. Şimdi çalışıyor. Abartılamam (yeterince itibar) ama yardımın için teşekkürler @binhsonnguyen
relidon
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.