Ich habe ein ~/bin
Verzeichnis (das sich in meinem befindet PATH
), in dem ich viele kleine 1- oder 2-Zeilen-Skripte speichere. Einige von ihnen gehen einfach cd
in ein Verzeichnis und führen einen Befehl für eine Datei aus, wie vim
oder so. Ich habe aber auch viele Aliase in meiner .bash_aliases
Datei, die dem gleichen Zweck dienen.
Wie entscheiden Sie sich zwischen dem Schreiben eines kleinen Bash-Skripts und dem Schreiben eines Alias? Ist es überhaupt wichtig, welchen Weg Sie gehen?
Antworten:
Wenn ich sie häufig genug benutze, um den Aufwand zu gewährleisten, dass sie in jede Shell geladen werden. Ich werde sie als Funktionen aufschreiben.
Wenn sie projektspezifisch sind, schreibe ich sie möglicherweise als eine Reihe von Aliasnamen und Funktionen, die bei der Arbeit an diesem Projekt in eine Shell eingespeist werden können.
Nur wenn sie eigenständig arbeiten, wird in meinem ~ / bin etwas zu einem Skript. Es gibt einige Einzeiler, die im Grunde genommen Aliase sind, aber diese dienen zum Ausführen von anderen Orten als Shells (führen Sie beispielsweise Eingabeaufforderungen in anderen Programmen aus). Zum größten Teil müssen es sich um ziemlich umfangreiche Skripte handeln.
quelle
Im Allgemeinen sind Shell-Skriptfunktionen flexibler als Aliase, und Sie sollten sie bevorzugen. In einem Alias können Sie beispielsweise nicht testen, ob die Anzahl der angegebenen Argumente oder deren Typ die erwarteten sind. Ich stimme Caleb zu, dass Aliase zum Beispiel gut zu einfachen Einzeilern passen
alias cp='cp -i'
quelle
Für alles, was eine String-Ersetzung eines einzelnen Befehls komplizierter macht, ist ein Skript wahrscheinlich besser geeignet. Außerdem ist alles, was von anderen Skripten verwendet wird oder möglicherweise von anderen Personen verwendet wird, wahrscheinlich besser als Skripte geeignet. Das Ausführen von Programmen aus dem bin-Verzeichnis einer anderen Person ist zwar keine gute Idee, aber es ist besser, als die einzelnen Aliase-Dateien einer anderen Person zu beziehen.
Aliase eignen sich am besten zur Personalisierung Ihrer interaktiven Umgebung. Zum Beispiel
e='emacs -nw'
und so etwas.quelle
Ich benutze den einfachsten Ansatz.
Hauptsächlich, wenn der Befehl keine Parameter hat, verwende ich normalerweise Aliase.
Wenn der Befehl Parameter hat, benutze ich eine Funktion.
zB ein Verzeichnis erstellen und cd'en:
Ich benutze auch eine Funktion, wenn der Befehl eine installierte Funktion verwendet, die selbst Parameter hat
Beispiel: Hinzufügen von -v zu git:
quelle