Ich habe seit einiger Zeit versucht, eine Funktion für mein Bash-Profil zu schreiben. Das Problem, das ich zu überwinden versuche, ist, dass ich normalerweise mit Dateipfaden versehen bin, die Leerzeichen enthalten, und es ist ein Schmerz, durch alle Räume zu gehen, bevor ich versuche, es im Terminal zu öffnen.BASH-Funktion zum Entfernen von Leerzeichen in Dateinamen vor dem Öffnen
z.B. Datei ->/Bände/Unternehmen/Illustratoren/Website Front Page Design.ai
Was ich versuche zu beenden ist '/ Bände/Unternehmen/Illustratoren/Website \ Front \ Page \ Design.ai' sein geöffnet von meinem Terminal.
Bis jetzt habe ich es geschafft, die Leerzeichen zu entkommen, aber ich bekomme dann den Fehler "Die Datei ..... existiert nicht."
Mein Code so weit ist
function opn { open "${1// /\\ }";}
Jede Hilfe sehr geschätzt würde.
Gibt es etwas falsches über 'öffnen" meinen Dateinamen "' oder 'öffnen" $ filename "'? – Kusalananda
Im Allgemeinen ist die Flucht aus Räumen Doing It Wrong. Wenn Sie korrekt angeben, benötigen Sie keine literalen Escapes in Ihren Daten. –
Übrigens ist das Schlüsselwort 'function' eine Nicht-POSIX-Syntax. Betrachten Sie stattdessen Ihre Funktionen als 'opn() {open $ @"; } ', ohne führende' Funktion', um mit einer größeren Anzahl von Schalen kompatibel zu sein. –