Przeładuj .profile bash bez wylogowania i ponownego zalogowania


81

Czy można zmusić bash do ponownego załadowania pliku .profile bez wylogowania i ponownego zalogowania?

Odpowiedzi:


102

Powinno to działać dla bieżącego terminala:

. ~/.profile

.jest bashwbudowanym i synonimem source, patrz man bash:

. nazwa_pliku [ argumenty ]
źródło filename [ argumenty ]
     Odczyt i wykonywanie poleceń z pliku w bieżącym środowisku powłoki (...).


18
Będzie działać tylko w obecnym terminalu.
enzotib

@enzotib Czy istnieje sposób na obejście tego?
Matty,

14
@Matty: nie, aby zmiany były widoczne dla całego środowiska graficznego, możesz tylko ponownie uruchomić sesję
enzotib

2
Jedynym problemem jest to, że jeśli usuniesz coś ze ścieżki, nie wejdzie to w życie, dopóki nie uruchomisz ponownie
Aras

1
@Aras sprawia, że ważnym punktem, który zasługuje rozbudowa: Jeśli coś jest usuwany z ~/.profilewyżej wspomnianej zmiany będą nie zastosowane po . ~/.profileprzeładowaniu. Na przykład, aby dodać funkcję ~/.profile: function externalip () { curl http://ipecho.net/plain; echo; }, a następnie ~/.profile- TO DZIAŁA. Teraz usuń tę funkcję z ~/.profile, a następnie . ~/.profileponownie. Funkcja jest nadal dostępna - tylko ponowne uruchomienie (wylogowanie i zalogowanie) ją usunie.
Seamus

13

Jeśli nie chcesz uruchamiać nowej powłoki, ale wykonujesz skrypt w bieżącej powłoce, możesz ją zdobyć:

source script_name.sh

source = .

sourceWbudowane Bash jest synonimem polecenia powłoki Bourne'a .(kropka).

dzięki uprzejmości - tldp.org

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.