在网上浏览后,运行多个保管箱帐户似乎很容易。您要做的就是更改环境变量,然后运行dropbox。但是,我尝试编辑.desktop文件(请参阅.desktop文件规范),因此Exec行从以下更改:
Exec=dropbox start -i
这是默认设置:
Exec=env "HOME\=/home/reg/.dropbox-alt" dropbox start -i
从我阅读的所有内容中应该可以使用 我还尝试了转义和引用的所有变体,例如:
Exec=env HOME\=/home/reg/.dropbox-alt dropbox start -i
Exec=env "HOME=/home/reg/.dropbox-alt" dropbox start -i
Exec=env HOME=/home/reg/.dropbox-alt dropbox start -i
而且似乎没有启动Dropbox的操作。但是,如果我在bash中尝试同一行,它将尝试启动,但失败了,但这仅是因为dropbox正在寻找GUI。在这种情况下,我会以为在.desktop文件中执行上述操作会起作用,但我什么都没发生。
我这样做时没有任何Dropbox实例已经在运行,所以不可能是Dropbox在寻找其他实例并阻止自己加载另一个实例。
如果我在.desktop文件中尝试此操作:
Exec=env dropbox start -i
它将启动Dropbox,但现在它是默认实例,没有任何好处。
谁能告诉我要完成这项工作我缺少什么?
#!/bin/bash
HOME_DIR=$HOME
DROPBOXES=("$HOME/.dropboxes/personal" "$HOME/.dropboxes/business")
function start_dropbox() {
HOME=$HOME_DIR
local flag
local home_dir
local OPTIND;
local verbose=0
local wait=0
while getopts p:vw opt; do
case $opt in
p) home_dir="$(echo $OPTARG | sed 's:/*$::')/" ;;
v) verbose=1 ;;
w) wait=1 ;;
*) ;;
esac
done
shift $((OPTIND-1))
# Test if the process is already running
local pid=$(ps aux|grep "${home_dir}.dropbox-dist"|grep -v 'grep'|tr -s ' '| cut -d' ' -f 2)
if [ -n "$pid" ]
then
echo "Process already running with home dir. of: $home_dir"
return 8 # Process already running
fi
# Create home directory if it doesn't exist
if [ ! -e "$home_dir" ]
then
if mkdir -p "$home_dir";
then
echo "Created directory: $home_dir"
else
echo "Failed to create directory: $home_dir"
return 9 # Failed
fi
fi
# Set up so works with GUI from command line
xauthority="${home_dir}.Xauthority"
if [ ! -e "$xauthority" ]
then
ln -s "$HOME/.Xauthority" "$xauthority"
fi
HOME="$home_dir"
# Start the dropbox daemon
if [[ $verbose -gt 0 ]]; then
echo '~/.dropbox-dist/dropboxd & '$home_dir
fi
~/.dropbox-dist/dropboxd &
if [[ $wait -eq 0 ]]; then
sleep 2 # Give each instance time to startup completely before starting another one
else
read -n 1 -s -p 'Press any key to continue.'
echo
fi
}
function start_dropboxes() {
local dropbox
for dropbox in "${DROPBOXES[@]}"
do
start_dropbox $@ -p "$dropbox"
done
}
#
# For testing & setup we can choose just one to startup
#
while getopts f:wv opt; do
case $opt in
f) start_dropbox -p "${DROPBOXES[$OPTARG]}" # NOTE: bash array indexes start at 0.
exit ;;
*) ;;
esac
done
OPTIND=1
start_dropboxes $@
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句