eggy hat geschrieben: 30.06.2020 07:18:29
Ich halts für ne interessante Fragestellung, zu der ich in der Manpage leider nichts gefunden hab. Sollte das tatsächlich nicht möglich sein (was ich mir eigentlich nicht vorstellen kann), bleibt noch nen fieser Hack: temporäre bashrc/profile anlegen und die bash damit starten. Grusliger Umweg.
Bei der bisherigen Lösung laufen die beiden Programme (ls bzw bash) von der Prozessverschachteltungsebene ja praktisch "nebeneinander", auch wenn der erste Task bereits wieder tot ist, wenn der zweite gestartet wird. Könnte mir vorstellen, es gibt Situationen, wo das wirklich mal nötig wäre, dass das Programm "innerhalb" bzw "unterhalb" der neuen bash läuft.
Für Deinen Fall ist das Problem zwar vom Tisch, aus akademischer Sicht aber immernoch ne interessante Baustelle...
Ich denke deine Loesung (xterm -e 'ls;bash') ist vermutlich schon bestmoeglich.
Was das Vorher-Ausfuehren von Befehlen in der Shell angeht, faellt mir auch nur eine temporaere bashrc ein. (Die wird aber vermutlich non-interative abgearbeitet, falls das relevant waere.)
Ansonsten bin ich noch auf die Idee gekommen, dass man vielleicht in den Prompt ($PS1) einen Befehl einbauen koennte (das geht in der Bash bestimmt), dann die neue Shell starten und nach dem gewuenschten Befehl den Prompt wieder zuruecksetzen. Das waere noch viel mehr Hack ... aber irgendwie auch spannend.
Als einzigen evtl. vorhandenen Nachteil deiner Loesung koennte ich mir denken, dass der Vorbefehl nicht in der Shell-History landet. Aber das haengt moeglicherweise davon ab wie die konfiguriert ist.