Jestem nowy w tworzeniu skryptów powłoki bash i napotkałem wyzwanie. Wiem, że mogę ponownie załadować plik „.profile”, wykonując po prostu:
. .profile
ale próbuję wykonać to samo w skrypcie bash, który piszę, i po prostu nie działa. Jakieś pomysły? Czy mogę coś jeszcze wyjaśnić?
Dzięki
bash
shell
unix
.bash-profile
Amir Rustamzadeh
źródło
źródło
Odpowiedzi:
Spróbuj tego, aby przeładować aktualną powłokę:
źródło
source
polecenia uruchomi plik jako skrypt ... W najgorszych przypadkach, jeśli ktoś użyłby przypisania zmiennej jakMyVar="$foo$MyVar"
w swoim bash_profile, tosource ~/.profile
dałby wynik końcowyMyVar="$foo$MyVar$MyVar"
, stąd$MyVar
miałby później niewłaściwą wartość. (Niezależnie od złych praktyk, po prostu poproś o alternatywne rozwiązanie)Spróbuj tego:
źródło
Podczas próby ponownego załadowania pliku / source ~ / .profile pojawia się kilka problemów. [Dotyczy to Ubuntu Linux - w niektórych przypadkach szczegóły poleceń będą inne]
Ogłoszenie. 1)
Uruchomienie tego bezpośrednio w terminalu oznacza, że nie zostanie utworzona podpowłoka. Możesz więc użyć jednego z dwóch poleceń:
lub
W obu przypadkach spowoduje to zaktualizowanie środowiska o zawartość pliku .profile.
Ad 2) Możesz uruchomić dowolny skrypt basha przez wywołanie
lub
W pierwszym przypadku utworzy to podpowłokę, która nie będzie miała wpływu na zmienne środowiskowe twojego systemu i będą widoczne tylko dla procesu podpowłoki. Po zakończeniu polecenia podpowłoki żaden z eksportów itp. Nie zostanie zastosowany. JEST TO WSPÓLNY BŁĄD I POWODUJE WIELU DEWELOPERÓW STRATĘ CZASU.
Aby zmiany zastosowane w skrypcie odniosły skutek w środowisku globalnym, skrypt musi być uruchomiony
Komenda.
Aby upewnić się, że twój skrypt nie zostanie uruchomiony w podrzędnej półce, możesz użyć tej funkcji. (Ponownie przykład dotyczy powłoki Ubuntu)
Mam nadzieję, że to wyjaśnia niektóre z powszechnych nieporozumień! : D Powodzenia!
źródło
Skrypt bash działa w osobnej podpowłoce. Aby to zadziałało, będziesz musiał również pobrać ten inny skrypt.
źródło
.profile
plik w następujący sposób:. $HOME/.profile
i będziesz musiał uruchomić skrypt, również go pozyskując. Coś w rodzaju. /path/to/yourscript
Próbować:
źródło