2016-10-05 4 views
0

Ich habe ein paar Befehle, die ich gerne schneller laufen würde. Die beste Lösung scheint ein Alias ​​zu sein (in der Tat eine Funktion, weil ich einige wenige Argumente verwenden muss). Ich möchte, dass mein Alias ​​beim Systemstart ausgeführt wird. Also habe ich eine Bash-Datei erstellt, um sie auszuführen. Um meine Funktion zu erstellen, gebe ich dieses Zeug in meiner Schale ein:Shell-Funktion in Bash-Datei

function myFunction() { command 1 ; command 2 ; etc... } 

Aber hier ist das Problem! Meine Bash-Datei führt nicht den ganzen Befehl aus, da myFunction als ... eine Funktion reconisiert wird! Aber eine interne Funktion.

Also gibt es eine Möglichkeit, die Datei die ganze Funktion ausführen zu lassen? Vielen Dank Jungs!

+0

Sie müssen die Funktion tatsächlich aufrufen (Sie haben sie nur definiert). Versuchen Sie auch, das Skript zu "quellen", damit die Definition erhalten bleibt. –

+0

Ist 'Funktion myFunction() {}' tatsächlich gültig? Ich definiere immer Funktionen als nur 'myFunction() {}' –

+0

Ja, es funktioniert, wenn ich es direkt in der Shell tippe, aber nicht, wenn ich die Bash-Datei ausführen. Wie kann ich den Code "quellen"? –

Antwort

1

Sie könnten einfach die Funktion in Ihrer ~/.bashrc definieren oder von dort aus die Datei, in der sie definiert ist.

+0

Das Problem ist, ich bin nicht root auf der Maschine –

+0

Nun, wenn Sie keinen Zugriff auf die Datei haben, können Sie nur eine neue erstellen und definieren Sie die Funktion innerhalb, dann "source" die Datei einmal, so dass die aktuelle Shell merkt sich die Funktionsdefinition. – Kabukki