smbサーバーの共有ディレクトリをwhiptailで選択してgioでマウントする


Linux Mint 20.3 (Una)
whiptail 0.52.21
libglib2.0-bin 2.64.6

スクリプトを作成する。

#!/bin/bash
directories=("共有1" "共有2" "共有3")
radioList=()
listIndex=0
for index in "${!directories[@]}"
do
    radioList[${listIndex}]=$index
    radioList[${listIndex}+1]=${directories[${index}]}
    radioList[${listIndex}+2]=OFF
    listIndex+=3
done
selectedIndex=$(whiptail --title "共有ディレクトリ" --radiolist "アクセスするディレクトリを選択してください。" 20 80 15 "${radioList[@]}" --notags 3>&1 1>&2 2>&3)
if [ ${#selectedIndex} == 0 ]; then
    exit 0
fi
directory=${directories[${selectedIndex}]}
if [ ! -d /run/user/$UID/gvfs/smb-share:server=samba-server,share=$directory/ ]; then
    echo -e "user\nWORKGROUP\nPassword\n" | gio mount smb://samba-server/$directory 1>/dev/null 2>/dev/null
fi
xdg-open smb://samba-server/$directory/

スクリプトを実行可能にする。

$ chmod +x ~/bin/gio-mount.sh
,