Ich möchte, dass bash zuerst einen Befehl ausführt, aber nach Beendigung des Befehls (oder Ctrl+ C'ed) in den interaktiven Modus wechselt (vorzugsweise mit dem Befehl im Verlauf, der für verfügbar ist up).
Wie erreicht man es am einfachsten und schönsten?
Inspiriert von cmd.exe /K
:
$ wineconsole cmd.exe /K echo qqq
qqq
Z:\home\wine>
history –s
funktioniert.bash_profile
.Ich bin nicht zu 100% sicher, dass ich genau verstehe, wonach Sie fragen, und leider habe ich
bash
im Moment keinen Zugriff auf ein System, auf dem es installiert ist , aber vielleicht hilft Ihnen Folgendes. Setzen Sie dies am Ende Ihres.bashrc
:(Wo
.bash_initial_command
ist ein beliebiger Dateiname; wählen Sie einen anderen aus, wenn Sie möchten), und schreiben Sie dann ein Skript, das dies ausführt:Das heißt, der Befehl (der dem obigen Skript als Argumente präsentiert wird) wird an einer Stelle abgelegt, an der der nächste
bash
zu startende Interaktive ihn findet und ausführt. (Wenn Sie beispielsweise ausführenset_up_cmd ls –l
, wird der nächstebash
ausgeführtls –l
.)history –s
Stellt einen Befehl in den Verlauf, ohne ihn auszuführen.Hinweis: Ich weiß nicht, ob das funktionieren wird
.bashrc
.Dies muss verfeinert werden, wenn Sie Befehle mit Anführungszeichen (dh Sonderzeichen in Anführungszeichen) oder Umleitungen (
<
oder>
) verwenden möchten . oder eine Verbindung Befehle (dh enthält;
,|
,&&
, oder||
).Ein kleines Problem: Wenn Sie Ctrl+ Cden Befehl eingeben, wird die
.bashrc
Verarbeitung wahrscheinlich abgebrochen und das.bash_initial_command
Löschen der Datei verhindert . Damit können Sie wahrscheinlich umgehenDies gibt
.bash_initial_command
einen eindeutigen Namen, um Kollisionen zu vermeiden, und sorgt dafür, dass dieser beim Beenden der Shell gelöscht wird.Wenn Sie in der Lage sein müssen, mehrere davon gleichzeitig zu starten, sollten Sie den Namen "tty"
$(basename $(tty))
in den.bash_initial_command
Dateinamen einfügen.Umso wichtiger ist es natürlich, dass Ihr Home-Verzeichnis nur von Ihnen selbst beschreibbar ist.
quelle
Sie können den Befehl zu
.bash_profile
oder hinzufügen.bashrc
. Es wird ausgeführt, sobald Sie ein neues Fenster öffnen oder sich bei Ihrem Computer anmelden.Auf dieser Seite finden Sie Informationen zu den Unterschieden zwischen den beiden Dateien.
quelle