Angenommen, ich möchte das ursprüngliche Verhalten des ls
Tools folgendermaßen ändern :
$ ls
Hello World
file1 file2 ...
Wie kann ich das machen?
Beim Ausführen ls
möchte ich einen anderen Befehl ausführen, sagen wir echo "Hello World!"
.
Die schnelle Lösung, die ich sehe, ist die Verwendung von Alias:
alias orig_ls="ls"
alias ls='echo "Hello World!"'
Dies ist jedoch keine echte Lösung, da sie beim Ausführen orig_ls
ausgegeben wird "Hello World!"
.
bash
shell
command-line
alias
Ionică Bizău
quelle
quelle
Antworten:
Manchmal ist ein Alias nicht leistungsfähig genug, um einfach das zu tun, was Sie wollen. Hier ist ein Weg, ohne sie zu verwenden.
Fügen Sie in einer Datei, die beim Start Ihrer Shell bezogen wird (z. B.
.bashrc
), die folgende Funktion hinzu:Im Gegensatz zu einem Alias kann eine Funktion wiederkehren. Deshalb
command ls
wird statt verwendetls
; Es weist Ihre Shell an, die tatsächlichels
Funktion anstelle der gerade definierten Funktion zu verwenden.quelle
command
Alternative für OS X?command
es nicht funktioniert hat: / Ich habe keine Ahnung und ich habe keinen Mac, mit dem ich es testen kann, sorry.Sie dürfen nicht vergessen anzurufen
ls
:quelle
&
zwar verwenden, aber ich verstehe das Argument, das Sie daraus machen, nicht.