Ich habe meinen Kopf versucht, das Bash-Äquivalent eines Csh-Alias zu erstellen. Die recht einfach Alias in csh ist:Wie man ein Bash-Äquivalent eines Csh-Alias erzeugt, der eine Variable setzt
alias gfiles='files="\`grep -l \\!*\`"; echo $files'
In bash wird ein Alias nicht wegen der Parameterersetzung arbeiten und eine Funktion wird nicht funktionieren, weil es eine Variable in den Eltern-Shell setzen muss. Dieser Alias ermöglicht Ihnen, vi oder ls oder mehr die passenden Dateien. Das Echo ist nicht unbedingt notwendig, aber ich habe es nützlich gefunden. Irgendeine Idee, wie man das Äquivalent in bash macht?
Huh? Funktionen können absolut Variablen in den Aufrufern setzen; Sie laufen nicht in Unterprozessen, außer wenn Sie etwas tun, das dies erzwingt. –
die besagt, dass die Verwendung einer Skalarvariablen ** (eine einzelne Zeichenfolge) zum Speichern einer ** Liste ** von Dateinamen (von denen jeder eine Zeichenfolge selbst ist) äußerst schlecht ist. Was passiert, wenn Namen mit Leerzeichen gespeichert werden müssen? Eine geeignete Vorgehensweise besteht darin, ein Array zu verwenden. –