Hier ist mein Skript:
%Vor%Bei 'read caminho' kann ich vom Benutzer einen Pfad wie ~ / somefolder erhalten. Wenn das Skript diesen Pfad erhält, wird sowohl mv als auch mkdir keine Tilde-Erweiterung machen, also wird es versuchen, einen ~ / somefolder und nicht / home / username / somefolder zu erstellen und daher fehlzuschlagen.
Wie stelle ich sicher, dass die Tilde in die HOME-Variable umgewandelt wird?
Wahrscheinlich müssen Sie die Variable überprüfen, damit sie korrekt ersetzt wird. Ein Beispiel wäre einfach
%Vor% Beachten Sie, dass dies bricht, wenn caminho
Semikolons oder Anführungszeichen enthält, Backslashes auch als Escaping behandelt werden und wenn die Daten nicht vertrauenswürdig sind, müssen Sie darauf achten, dass Sie nicht das Ziel eines Injektionsangriffs sind .
Ich hoffe, das hilft.
Zitat und Erweiterung sind immer knifflig, vor allem in bash. Wenn Ihr eigenes Home-Verzeichnis gut genug ist, funktioniert dieser Code (ich habe es getestet):
%Vor%