ls
Nehmen wir an, ich möchte das ursprüngliche Verhalten des Tools folgendermaßen ändern :
$ ls
Hello World
file1 file2 ...
Wie kann ich das machen?
Beim Ausführen ls
möchte ich beispielsweise einen anderen Befehl ausführen echo "Hello World!"
.
Die schnelle Lösung, die ich sehe, ist die Verwendung eines Alias:
alias orig_ls="ls"
alias ls='echo "Hello World!"'
Dies ist jedoch keine wirkliche Lösung, da beim Ausführen orig_ls
Folgendes ausgegeben wird "Hello World!"
:
Antwort1
Manchmal ist ein Alias nicht leistungsstark genug, um das gewünschte Ergebnis zu erzielen. Hier ist also eine Möglichkeit, ohne Alias auszukommen.
Fügen Sie in einer Datei, die beim Starten Ihrer Shell als Quelle verwendet wird (z. B. .bashrc
), die folgende Funktion hinzu:
ls () {
echo "Hello world!"
command ls "$@"
}
Im Gegensatz zu einem Alias kann eine Funktion rekursiv sein. Aus diesem Grund command ls
wird anstelle von verwendet ls
. Dadurch wird Ihre Shell angewiesen, die tatsächliche Funktion ls
anstelle der gerade definierten Funktion zu verwenden.
Antwort2
Vergessen Sie nicht anzurufen ls
:
alias ls='echo "Hello World!"; ls'