Hi,
ich bräuchte nochmal Hilfe.
Ich habe das Problem (-> Ubuntu), dass ich die Parameter-Werte der Aufnahmesteuerung über die Befehlszeile an Bash übergeben muss. Dabei ergeben sich bei der Übergabe mit und ohne umgebende Anführungszeichen ("Text") folgende Ausnahmen:
(Parameter-Wert –> Bash-Eingangs-Wert)
Code: Alles auswählen
dies-ist-ein-Text ⏩ dies-ist-ein-Text
"dies-ist-ein-Text" ⏩ "dies-ist-ein-Text"
Code: Alles auswählen
dies ist ein Text ⏩ dies
"dies ist ein Text" ⏩ dies ist ein Text
Ich kann dies auffangen, indem ich einfach alles MIT Anführungszeichen übergebe und im Script diese wieder entferne. Dies funktioniert aber NUR mit den beiden UMGEBENDEN Anführungszeichen. Wenn der Text aber noch Weitere enthält, passiert folgendes:
Code: Alles auswählen
dies ist "ein" Text ⏩ dies
"dies ist "ein" Text" ⏩ "ein"
dies ist "ein" weiterer "Text" ⏩ dies
"dies ist "ein" weiterer "Text"" ⏩ dies ist "ein
Bei mehr als 2 Paaren insgesamt wird es dann unvorhersehbar.
Also, ich dachte mir, die im Text enthaltenen Anführungszeichen komplett durch andere Unicode-Anführungszeichen (z.B.
” =U+201D) zu ersetzen.
Doch hier komm ich nicht weiter.
Ein Ansatz war es, dies über {urlencode} zu übergeben und im Script dann wieder zu decodieren.
Problem hierbei: {urlencode} ersetzt Leerzeichen durch "+" – selbst, wenn man diese vorher bereits mit {replace} durch "%20" ersetzt hat. Dadurch werden nachher alle echten "+" fälschlicherweise durch Leerzeichen ersetzt.
So, nun zur Frage: Wie bekomme ich das hin, ohne ein Stück aus der Tischkante zu beißen?
Grüße,
Jens