Ich habe ein Shell-Skript geerbt. Eines der Dinge, die es tut, ist das Parsen einer Liste von Dateinamen. Für jeden Dateinamen in der Liste ist das Kommando folgenden:bash Parameter Erweiterung ändert ursprünglichen String
fs_item="`echo ${fs_item%/}`"
Diesen Befehl (ein Teil von tut es der Aufgabe, die in diesem Fall denke ich, ist alles nach dem letzten Schrägstrich entfernen) mit einem Leerzeichen ersetzt Leerzeichen in Dateinamen :
in: aa bbbb ccc
out: aa bbbb ccc
Von diesem Punkt ist der Dateiname gebrochen.
Also, die Frage ist: Kann ich irgendwie sagen Bash nicht Räume zu ersetzen?
Das ist mir unklar, .. wenn Sie nicht über die Linie fs_item wollen = "' echo $ {fs_item% /} '" Räume zu ersetzen, dann entfernen Sie diese Zeile. – nos
Ich habe einen Kommentar hinzugefügt. Der Befehl gibt es aus einem anderen Grund, Bot ersetzt Leerzeichen –
$ {foo% /} entfernt nur einen abschließenden Schrägstrich, wenn es einen gibt. Wenn mehrere Schrägstriche vorhanden sind, wird nur die letzte entfernt. –