Mam kilka rzeczy, które chcę wykonać w .bashrc, które wolałbym istnieć w innym pliku w systemie. Jak mogę dołączyć ten plik do .bashrc?Dołącz dodatkowe pliki w .bashrc
Odpowiedz
Dodaj source /whatever/file
(lub . /whatever/file
) do .bashrc
, gdzie chcesz dołączyć drugi plik.
Aby zapobiec błędom, należy najpierw sprawdzić, czy plik istnieje. Następnie pobierz plik. Zrób coś takiego.
# include .bashrc if it exists
if [ -f $HOME/.bashrc_aliases ]; then
. $HOME/.bashrc_aliases
fi
Jeśli masz wiele plików, które chcesz załadować, ale mogą one nie istnieć, możesz je nieco elegancko za pomocą pętli for.
files=(somefile1 somefile2)
path="$HOME/path/to/dir/containing/files/"
for file in ${files[@]}
do
file_to_load=$path$file
if [ -f "$file_to_load" ];
then
. $file_to_load
echo "loaded $file_to_load"
fi
done
Wyjście wyglądałby następująco:
$ . ~/.bashrc
loaded $HOME/path/to/dir/containing/files/somefile1
loaded $HOME/path/to/dir/containing/files/somefile2
Na pewno nie musisz ponownie sprawdzać istnienia pliku wewnątrz pętli? (Jeśli nie masz bardzo dynamicznej listy plików na dysku) –
Istnieje tylko jeden sprawdzian istnienia pliku. Jeśli twoje obecne środowisko pracy nie ma pliku opisanego na liście, spowoduje to po prostu błąd przy ładowaniu tego pliku i wygeneruje szum wizualny. Bardziej idealnym podejściem byłoby uzyskanie listy plików, a następnie przechodzenie przez nią, zamiast definiowania statycznej listy. – modle13
Wolę sprawdzić wersję pierwszą i przypisać do zmiennej konfiguracji toru:
if [ -n "${BASH_VERSION}" ]; then
filepath="${HOME}/ls_colors/monokai.sh"
if [ -f "$filepath" ]; then
source "$filepath"
fi
fi
- 1. Android.mk, dołącz wszystkie pliki cpp
- 2. Dołącz pliki YAML z snakeyaml
- 3. .bashrc w Cygwin 1.7
- 4. Dołącz pliki w wierszu polecenia z Ruby
- 5. Czy niepotrzebne są dodatkowe pliki narzutów?
- 6. Dołącz pliki TypeScript do instalacji azure git
- 7. Dołącz dwa pliki WAV z Java?
- 8. Spring MVC - dołącz statyczne pliki/javascript, css
- 9. Pythonowy odpowiednik ~/.bashrc
- 10. Dołącz wszystkie pliki w określonym katalogu do pakietu msi
- 11. Cygwin powłoka nie wykonuje .bashrc
- 12. vim - uruchom: polecenia w moim .bashrc
- 13. Polecenia z .bashrc niedostępne w Emacs
- 14. skrypt bash nie czyta alias w bashrc
- 15. Jak .bashrc dla roota w Dockerze
- 16. MSDeploy: "Pozostaw dodatkowe pliki docelowe" z wiersza poleceń?
- 17. Do czego służą dodatkowe pliki js z frameworku Angular.js?
- 18. Release Build zawiera dodatkowe pliki, czy potrzebuję ich?
- 19. Zarządzaj i dołącz pliki Handlebars.js z Symfony 2.1 i Assetic
- 20. Dołącz pliki pdb do moich plików nuget (nupkg)
- 21. Jak załadować dodatkowe biblioteki dla GDB?
- 22. MySQL Dołącz skrypt w skrypcie
- 23. Usuń dodatkowe legendy w ggplot2
- 24. Dodatkowe pola w CarrierWave Uploader
- 25. Kartezjański dołącz w data.table
- 26. Jak utworzyć funkcję w bashrc, aby akceptować argumenty?
- 27. Polecenie shopt nie znaleziono w .bashrc po aktualizacji powłoki
- 28. Jak znaleźć to, co projekt dziedziczy? To dodatkowe katalogi od
- 29. Jak dodać dodatkowe pliki do pakietu Nuget w Visual Studio 2017
- 30. dołącz wiele plików
Należy poradzić nieistnienie wdziękiem. np. albo sprawdź istnienie (test -r ścieżka i ścieżka) lub zignoruj błędy (. ścieżka 2>/dev/null) –
@William Pursell IMO łatwiej jest raz przetestować, a następnie napisać kod dla przypadków, których 99,99% nigdy się nie zdarzyło . – Daniel
@Daniel Nie zgadzam się. Rzeczy, które się zdarzają .01% czasu może wystąpić tysiące razy na sekundę. A posiadanie .bashrc na NFS zamontowanym na $ HOME może oznaczać, że wskaźnik awaryjności pozyskiwania pliku jest znacznie wyższy niż .01% –