Ovion
Hi,
ich würde gerne nochmals das Fachwissen der Shellexperten dieses Forums zur Rate ziehen, denn ich komme gerade nicht weiter.
Ich würde gerne den Mutterprozess eines Shellscripts abfragen, um, wenn dieses Shellscript von einem bestimmten anderen Programm aufgerufen wurde, bestimmte Dinge zu tun. Ist das so überhaupt möglich?
Woher kommt der Plan?
Ich würde gerne den Filemanager auf Ranger wechseln (oder eher Ranger verwenden und dafür den Standardfilemanager wechseln 😛). Ranger bietet die Möglicheit, Shellbefehle im aktuellen Ordner abzusetzen. Dabei wird auch eine entsprechende Shell gestartet, in der Output zu sehen ist. Daher würde ich gerne einige Funktionen in meiner zshrc auf diese Weise auch über ranger nutzen wollen, ohne sie dort komplett neu implementieren zu müssen. Dazu würde ich die entsprechenden Funktionen in Shellskripte im Path aufteilen.
Das Problem, das sich hierbei stellt, ist, dass die ranger-Shell sich schließt, wenn das Kommando durchgelaufen ist, egal ob dort noch Output wartet oder nicht. Ich könnte also die Shellskripte mit einem "read" beenden, dann bliebe die Shell offen, es würde aber auf einem simplen Terminal genutzt nerven, jedesmal noch ein Enter nachschieben zu müssen, da mir dort der Output ja nicht wegläuft.
Alternativ könnte ich die Funktion in einem Shellskript angepasst für ranger und der zshrc für's Terminal haben, aber ich stehe ehrlich gesagt nicht wirklich auf Redundanz, falls ich irgendwann doch noch mal was am Code ändere (z.B. um weitere Routinen für neue Dateitypen einzubinden, ist u. A. eine Funktion/ein Skript zum Archive auspacken).
Daher hatte ich die Idee, am Ende zu prüfen, ob der Mutterprozess ranger ist und falls ja, ein "read" ausführen, sonst eben nicht.
Gibt es da Möglichkeiten?