2
私は、1つのスクリプトだけで外付けドライブから私のホームフォルダを自動的にマウントしたいと思います。私のシステムはUbuntu 16.04です。bash:他のドライブから家にマウントフォルダを自動化
HOMEのフォルダと同じ名前のフォルダが外部ディレクトリに存在するかどうかを確認し、HOMEのフォルダの名前をfoldername_localに変更し、外部ディレクトリのフォルダをHOMEにマウントします。
これは、私がグーグルとstackoverflowのの助けを借りて得た方法遠い:フォルダ名のリストを作成
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
は、これまでに動作します。
残念ながら、比較部分は機能せず、私は立ち往生しています。
私はこれを解決するためのアイデアを感謝します。
ソース:[パラメータ展開](http://wiki.bash-hackers.org/syntax/pe#substring_removal)へのヒントについて
How do I check if a variable exists in a list in BASH
Listing only directories in UNIX
おかげ –
残念ながら、私が得ます10行目:[:missing '] 'のみで動作しません。 1行目は[-d $ item]行です。 –
申し訳ありませんまだ自分のコメントを編集できません。エラーは10行目を参照しています:[-d $ item] && .... –