Macos 如何使用bash检查是否在OS X中装入了文件路径?

Macos 如何使用bash检查是否在OS X中装入了文件路径?,macos,bash,Macos,Bash,如果尚未安装,如何执行安装 这是在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 e

如果尚未安装,如何执行安装

这是在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

虽然@hd1的答案告诉您文件是否存在,但这并不意味着目录是否已装入。如果您将此脚本用于不同的计算机或使用不同的装入点,则该文件可能恰好存在。我建议这样做

LOCALMOUNTPOINT="/folder/share"

if mount | grep "on $LOCALMOUNTPOINT" > /dev/null; then
    echo "mounted"
else
    echo "not mounted"
fi

注意,我根据机器中的
mount
命令输出在grep语句中包含“on”。您说过您使用MacOS,所以它应该可以工作,但是根据
mount
命令输出的内容,您可能需要修改上面的代码。

这是我在OS X 10.7.5上的shell脚本中使用的内容

df | awk '{print $6}' | grep -Ex "/Volumes/myvolume"
对于OS X 10.10 Yosemite,我必须更改为:

df | awk '{print $9}' | grep -Ex "/Volumes/myvolume"

对于我来说,从这个解决方案中

用那个

# 2 lines
$LOCALMOUNTPOINT="/folder/share" ;
[ -d $LOCALMOUNTPOINT ] && echo "Already mounted $LOCALMOUNTPOINT in OS X" || /sbin/mount -t smbfs //user:password@serveraddress/share $LOCALMOUNTPOINT
这是 关于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

谢谢你,这个案子让我学到了很多。
祝你今天愉快!!!;)

由于它是awk在这两种情况下找到的行上的最后一个字段,您可以使用
$NF
而不是
$6
$9
。您可以在我的imac(macos 10.13.6)上使用
/dev/null
而不是
/dev/null
,它只在没有
/dev/null
-q
的情况下工作。。。
# Here is my solution
$LOCALMOUNTPOINT="/folder/share" ;
[ ! -d $LOCALMOUNTPOINT ] && mkdir $LOCALMOUNTPOINT && /sbin/mount -t smbfs //user:password@serveraddress/share $LOCALMOUNTPOINT || echo already mounted $LOCALMOUNTPOINT