Ich möchte automatisch meine Home-Ordner von einem externen Laufwerk mit nur einem Skript mounten. Mein System ist Ubuntu 16.04.Bash: Automatisieren von Ordnern zu Hause von anderen Laufwerk
Ich möchte überprüfen, ob Ordner mit dem gleichen Namen wie Ordner in HOME im externen Verzeichnis vorhanden sind, benennen Sie die Ordner in HOME in foldername_local um und mounten Sie den Ordner für externe Verzeichnisse in HOME.
ist dies, wie weit mit Hilfe von Google und Stackoverflow Ich habe:
REMOTE=/path/to/remote/location
#create a list of external folders
rLIST=$(find $REMOTE -maxdepth 1 -type d -name [^\.]\* -printf '%f\n'| sed 's:^\./::')
#create a list of folders in HOME
hLIST=$(find $HOME -maxdepth 1 -type d -name [^\.]\* -printf '%f\n'| sed 's:^\./::')
#declare comparison function
contains() {
[[ $1 =~ (^|[[:space:]])$2($|[[:space:]]) ]] && exit(0) || exit(1)
}
for item in "$rLIST"; do
if contains hLIST item
then
#rename folder and mount external drive fodlers
mv $HOME$item $HOME$item_local
mount --bind $REMOTE$item $HOME$item
else
continue
fi
done
Erstellen der Ordnernamen Listen funktioniert so weit.
Leider funktioniert der Vergleichsteil nicht und ich stecke fest.
Ich freue mich über Ideen, wie Sie das lösen können.
Quellen:
How do I check if a variable exists in a list in BASH
Listing only directories in UNIX
Danke für den Hinweis auf [Parameter Expansion] (http://wiki.bash-hackers.org/syntax/pe#substring_removal) –
Leider bekomme ich nur Zeile 10: [: fehlt '] 'und es funktioniert nicht. Zeile 1 ist die Zeile [-d $ Element] -. –
Entschuldigung, ich kann meine eigenen Kommentare noch nicht bearbeiten. Der Fehler bezieht sich auf Zeile 10: [-d $ item] && .... –