Verschlüsselte Ordner über shell-script mounten - Zeichen im Passwort escapen?

Status
Für weitere Antworten geschlossen.

thothothomas

Benutzer
Mitglied seit
09. Feb 2015
Beiträge
64
Punkte für Reaktionen
0
Punkte
6
Hallo zusammen,
ich nutze ein sh-Script zum mounten meiner verschlüsselten Ordner, was auch super funktioniert. Allerdings hbae ich leider einen Ordner, der im Passwort ein "`" hat. Das mag mein Script nicht und bricht entsprechend (/tmp/pw.sh: line 8: unexpected EOF while looking for matching ``') ab. Escape ich das Zeichen, ist das Passwort wiederum falsch. Wie komme ich aus dieser Nummer raus?

Hier Auszüge aus dem Script:
Rich (BBCode):
#!/bin/sh
...
/usr/syno/sbin/synoshare --enc_mount "ser" "8V`-g.5%#'%8OK"
Rich (BBCode):
#!/bin/sh
...
/usr/syno/sbin/synoshare --enc_mount "ser" "8V\`-g.5%#'%8OK"
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Hi,

was passiert wenn du die double qoutes weglässt und den backtick eben mit dem escape charackter dem backslash behandelst?

--luddi
 
Zuletzt bearbeitet:

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Vielleicht liegt es aber auch an dem single quote character in dem string?

ich habe folgendes kurz probiert:

Rich (BBCode):
#!/bin/bash
argument=8V\`-g.5%#\'%8OK
echo $argument
exit 0

D.h. ein backtick wird auch innerhalb einer Sequenz mit double qoutes als bash character behandelt. Wirst du diesen escapen sollte es funktionieren.
Aber: Hier als Argument für den Funktionsafuruf "/usr/syno/sbin/synoshare" wird selbst der single quote ein Problem darstellen.

a.) String in double qoutes
Rich (BBCode):
argument="8V`-g.5%#'%8OK"
echo $argument

--> Fehler!

b.) string in double quotes wobei backtick escaped --> \`
Rich (BBCode):
argument="8V\`-g.5%#'%8OK"
echo $argument

--> Ausgabe: 8V`-g.5%#'%8OK

c.) string ohne double quotes wobei backtick als auch single qoute escaped --> \` und \'
Rich (BBCode):
argument=8V\`-g.5%#\'%8OK
echo $argument

--> Ausgabe: 8V`-g.5%#'%8OK

Deshalb mein Vorschlag sowohl den backtick als auch den single quote mit einem backslash zu escapen.

--luddi
 

thothothomas

Benutzer
Mitglied seit
09. Feb 2015
Beiträge
64
Punkte für Reaktionen
0
Punkte
6
Danke luddi! Das ging ja schnell.
Die Lösung war tatsächlich das Entfernen der doblequotes, das escapen von allen möglichen Sonderzeichen die bash nicht mag und das Schreiben der Zeichen in eine Variable.
Jetzt funktioniert das Script auch für den letzten Ordner, danke!
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Sehr schön. Das freut mich wenn ich helfen konnte :)

--luddi
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat