jak mogę podać polecenie w linii poleceń bash, które zostanie wykonane raz w nowym bashie po przeczytaniu ~ / .bashrc - Ale to wszystko bez pozwalania bashowi wyjść po zakończeniu polecenia?
Bawię się „konfiguracją rozruchową” terminatora, w której niektóre podziały powinny uruchamiać niektóre aplikacje (vim, mutt, irsi) po uruchomieniu. Ale nadal chcę normalne powłoki w tle (ctrl-z i tak dalej ...), więc po zamknięciu aplikacji mam tę samą powłokę, którą miałem w czasie życia aplikacji ...
Co dla mnie nie działa (na podstawie podanych odpowiedzi)
( bash; vim ) # vim waits for the exit of bash...
bash -c vim # bash exits after vims exit...
bash -c 'vim; exec bash' # bash is executed _after_ vim... ctrl-z won't work
echo vim | bash -s # "Vim: Warning: Input is not from a terminal"
Ręczne dołączanie „vim” do tymczasowego bashrc również nie działa. vim uruchamia się poprawnie, ale nadal nie ma bashu w tle, do którego doprowadziłoby mnie Ctrl-Z.
Jakieś sugestie?
źródło
unset PROMPT_COMMAND
niżexport PROMPT_COMMAND=
.exec bash
Zastąpi bieżącą instancję atakujących z nowym.źródło
exec bash
.exec bash --login
pomaga, ale jak wspomniano, uruchamia bash wewnątrz bash, co nie jest tak naprawdę tym, czego chcemy.(Ab) używanie
.bashrc
jest jedynym użytecznym sposobem. 1 Generacja nie jest jednak potrzebna - wystarczy umieścić polecenie (-a) w zmiennej środowiskowej ieval
:Na końcu umieść
~/.bashrc
:Skonfiguruj Terminator, aby uruchomić to polecenie:
1 Wykluczmy te, które używają C4 do zgryzienia orzechów.
źródło
Miałem ten sam problem w kontekście potrzeby odradzania vima w oknie tmux z możliwością Ctrl-Z. W końcu nie udało mi się wymyślić, jak to zrobić czysto w bashu. Postanowiłem, co następuje:
źródło
Dzięki użytkownikowi wor za „ niestandardowy plik bashrc w locie ”!
Inną ważną częścią jest „ pułapka ”, wbudowana w bash:
Nawiasem mówiąc, nie mam pojęcia, co to jest „terminator”, o którym pan wspomina.
Znalazłem to, szukając rozwiązania z bash i screenem.
źródło