Diese Funktion muss der Bash bekannt gemacht werden. Am einfachsten geht das, indem man sie in der Datei '.bashrc' im eigenen Home Verzeichnis definiert.
Sprich:
Meine .bashrc sieht folgendermaßen aus:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 |
export PS1='\h:\w\$ '
umask 022
export LS_OPTIONS='--color=auto'
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
mc ()
{
MC=/tmp/mc$$-"$RANDOM"
/usr/bin/mc -P "$MC"
cd "`cat $MC`"
rm "$MC"
unset MC;
}
|
Ich musste die Funktion etwas anpassen, damit sie mit der neuen Midnight Commander Version funktioniert.
Was das macht ist folgendes:
Eine funktion namens "mc" wird definiert. Damit hat diese Funktion Vorrang vor Programmen mit dem selben Namen.
In der Variablen "MC" wird der Name einer temporären Datei gespeichert.
Der Midnight-Commander wird aufgerufen mit dem Parameter -P der als Wert den temporären Dateinamen erhält. Darin speichert der Midnight Commander beim Beenden dann das aktuelle Verzeichnis.
Nach dem Beenden wird das Script weiter ausgeführt und wechselt in das Verzeichnis, das jetzt in der temporären Datei gespeichert ist.
Dann wird die temporäre Datei wieder gelöscht ...
und die Variable mit dem Dateinamen verworfen. Aufräumen ist wichtig!
Es kann sein, dass der Midnight Commander in einem anderen Verzichnis als "/usr/bin" installiert ist, dann muss der Aufruf entsprechend angepasst werden. Um festzustellen, wo er installiert ist kann man den Befehl 'which mc' verwenden.
Ich hoffe, damit helfen zu können. Hab das selber gesucht und keine klügere Antwort als hier gefunden und dann den Rest selber hingefrickelt.
Falls jemand eine elegantere Lösung hat, bin natürlich auch immer interessiert.