Wie spezifiziere ich einen Befehl in der Kommandozeile von Bash, der nach dem Lesen von ~ / .bashrc einmal in der neuen Bash ausgeführt werden soll?
Ich spiele mit einer "Boot-up-Konfiguration" für den Terminator, bei der einige Splits nach dem Start einige Anwendungen (vim, mutt, irrsi) starten sollten. Aber ich möchte immer noch normale Shells im Hintergrund (Strg-Z und so weiter ...), also habe ich nach dem Beenden einer Anwendung die gleiche Shell, die ich zu Lebzeiten von eapplications hatte ...
Was funktioniert bei mir nicht (basierend auf gegebenen Antworten)
( 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"
Das manuelle Anhängen von "vim" an einen temporären bashrc funktioniert ebenfalls nicht. vim startet korrekt, aber es ist noch kein Hintergrund-Bash vorhanden, zu dem mich ein Strg-Z bringen würde.
Irgendwelche Vorschläge?
quelle
unset PROMPT_COMMAND
nichtexport PROMPT_COMMAND=
, though.Dadurch
exec bash
wird die aktuelle Bash-Instanz durch eine neue ersetzt.quelle
exec bash
.exec bash --login
hilft aber wie gesagt dies läuft bash in bash was nicht ganz das ist was wir wollen.(Ab) using
.bashrc
ist der einzig verwendbare Weg. Eine Generierung ist jedoch nicht erforderlich. Fügen Sie einfach die Befehle in eine Umgebungsvariable ein und führeneval
Sie Folgendes aus:Fügen Sie am Ende Folgendes ein
~/.bashrc
:Konfigurieren Sie Terminator, um diesen Befehl zu starten:
1 Lassen Sie uns die "Verwenden Sie C4, um eine Nuss zu knacken" diejenigen ausschließen.
quelle
Ich hatte das gleiche Problem im Zusammenhang mit dem Wunsch, vim in einem tmux-Fenster mit der Möglichkeit, Strg-Z-Out zu erzeugen. Am Ende habe ich nicht herausgefunden, wie man es sauber in bash macht. Ich entschied mich für Folgendes:
quelle
Vielen Dank an den User wor für die " custom bashrc file on the fly "!
Der andere entscheidende Teil ist " Trap ", ein Bash-Builtin:
Ich habe übrigens keine Ahnung, was der von Ihnen erwähnte "Terminator" ist.
Ich habe dies gefunden, als ich nach einer Lösung mit Bash und Screen gesucht habe.
quelle