【发布时间】:2015-04-09 06:50:58
【问题描述】:
我正在尝试编写一个 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/学生文件夹$ FS03/员工文件夹$ 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";
我知道会有语法错误,请随时指出。
这是解决我的问题的正确方法吗?
【问题讨论】:
标签: macos bash osx-yosemite