需要帮助编写Bash脚本以比较已安装的网络安装MAC OSX

时间:2015-04-07 20:17:35

标签: macos bash yosemite

我正在尝试编写一个bash脚本,该脚本将根据安装的网络共享来确定结果,

我有3种可能的网络安装,需要3种不同的结果,具体取决于安装的内容。

我没有写bash的经验但是我能够填写其余的一旦我有IF语句设置,我无法找到任何地方帮我比较安装的装载

这就是我要找的东西

    IF [Network Mount 1 is mounted] then 

    Copy File 1

    Else IF [Network Mount 2 is mounted] then

    Copy File 2

    Else [Network Mount 3 is mounted] Then

    Copy File 3

我被困了!

请帮助或指导我。

更新: 所以我认为我一直在比较错误的信息来实现我的目标,

由于我希望将此脚本作为登录挂钩运行,我认为我更好地比较用户SMB主目录而不是挂载,因为它在脚本运行时不会被挂载。

我可以使用这行代码获取网络主目录

dscl . read /Users/$USER SMBHome

我现在想将其与3个可能的SMB文件服务器进行比较

FS02 / StudentsFolders $ FS03 / StaffFolders $ FS03 / TeachersFolders $

在通配符比较上,因为SMB路径也会包含用户名,所以这就是我到目前为止

#!/bin/bash

UsersHome = dscl . read /Users/$USER SMBHome;

# First Argument #  if [[ $UserHome == *"FS02/StudentsFolders$"* ]] then   echo "Make Changes to Plist";

# Seconde Argument #  else if [[ $UserHome == *"fs03/Stafffolders$"* ]] then    echo "Make different Changes to Plist";

# Third Argument #  else 

Echo "Make Changes to the plist";

我知道会有语法错误请随意指出它们。

这是解决我问题的正确方法吗?

1 个答案:

答案 0 :(得分:0)

已安装的卷通常位于/Volumes目录中。你可能想要像

这样的东西
if [ -d /Volumes/DiskOne ]; then # Is DiskOne mounted?
   ...
elif [ -d /Volumes/DiskTwo ]; then # Is DiskTwo mounted
   ...
else
   ...
fi