Dank der Kommentare von @n.st habe ich diesen Liner gemacht:
konsole -e /bin/bash --rcfile <(echo "cd /;ls;echo hi | less")
Dies ist nur eine kürzere Version ohne tmpfiles, wobei für den folgenden Vorgang die Bash-Prozessersetzung verwendet wird.
echo "cd /;ls;echo hi | less" > /tmp/konsolebash;konsole -e /bin/bash --rcfile /tmp/konsolebash
Dadurch werden einige Befehle ausgeführt, angezeigt, die Umgebung geändert, ein Programm ausgeführt ( less
), und wenn es endet ( :q
), wird es interaktiv sein.
Ersetzen Sie also cd /;ls;echo hi | less
die Demonstration durch Ihr Skript.
Kein Verlauf, aber Sie befinden sich jetzt im richtigen Verzeichnis und haben alle Umgebungsvariablen, die Sie möglicherweise eingerichtet haben möchten.
Im Grunde dasselbe wie mein früherer Versuch;
konsole -e "echo ls > /tmp/konsolebash;/bin/bash -i --rcfile /tmp/konsolebash"
Außer, dass das Schreiben der Datei außerhalb der konsole
Ausführung liegt, habe ich das -i
Flag entfernt und die Ausführungsparameter befinden sich nicht in einem Anführungsblock
Leider führt der --rcfile
Schalter dazu, dass Sie ~/.bashrc
für diese Befehle nicht geladen werden. Wenn Sie also einen Alias oder etwas benötigen, müssen Sie dies tun.
cat ~/.bashrc > /tmp/konsolebash; echo "commands" >> /tmp/konsolebash;konsole -e /bin/bash --rcfile /tmp/konsolebash
Welche nur kopiert Ihre bashrc dann anfügt Ihre Befehle an das Ende davon