如果尚未安装,我该如何执行安装?
这是在OS X 10.9上,这是我目前所拥有的:
#!/bin/bash
# Local mount point
LOCALMOUNTPOINT="/folder/share"
# Perform the mount if it does not already exist
if ...
then
/sbin/mount -t smbfs //user:password@serveraddress/share $LOCALMOUNTPOINT
else
echo "Already mounted"
fi
答案 0 :(得分:19)
虽然@ hd1的答案会告诉您该文件是否存在,但并不一定意味着该目录已安装。如果您将此脚本用于不同的计算机或使用不同的挂载点,则该文件可能会存在。我会建议这个
LOCALMOUNTPOINT="/folder/share"
if mount | grep "on $LOCALMOUNTPOINT" > /dev/null; then
echo "mounted"
else
echo "not mounted"
fi
请注意,我在grep语句中包含“on”,基于我的机器中的mount
命令输出。你说你使用MacOS所以它应该工作,但根据mount
命令输出,你可能需要修改上面的代码。
答案 1 :(得分:4)
这是我在OS X 10.7.5上的shell脚本中使用的内容
df | awk '{print $6}' | grep -Ex "/Volumes/myvolume"
对于OS X 10.10优胜美地,我必须改为:
df | awk '{print $9}' | grep -Ex "/Volumes/myvolume"
答案 2 :(得分:0)
对我来说,stackoverflow_QA_Check if a directory exists in a shell script的这种解决方案
[ -d /Volumes/ ] && echo "Already mounted /Volumes/ in OS X" || echo "Not mounted"
使用它
# 2 lines
$LOCALMOUNTPOINT="/folder/share" ;
[ -d $LOCALMOUNTPOINT ] && echo "Already mounted $LOCALMOUNTPOINT in OS X" || /sbin/mount -t smbfs //user:password@serveraddress/share $LOCALMOUNTPOINT
这里是Stackoverflow_QA_how-can-i-mount-an-smb-share-from-the-command-line 关于smb的其他链接,我不太了解
# Here is my solution
$LOCALMOUNTPOINT="/folder/share" ;
[ ! -d $LOCALMOUNTPOINT ] && mkdir $LOCALMOUNTPOINT && /sbin/mount -t smbfs //user:password@serveraddress/share $LOCALMOUNTPOINT || echo already mounted $LOCALMOUNTPOINT
在安装该文件夹之前,我必须先创建一个新文件夹供我使用。
所以我添加了mkdir $LOCALMOUNTPOINT
谢谢你,我从这个案例中学到了很多。 祝你今天愉快!!! ;)