我正在尝试编写一个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";
我知道会有语法错误请随意指出它们。
这是解决我问题的正确方法吗?
答案 0 :(得分:0)
已安装的卷通常位于/Volumes
目录中。你可能想要像
if [ -d /Volumes/DiskOne ]; then # Is DiskOne mounted?
...
elif [ -d /Volumes/DiskTwo ]; then # Is DiskTwo mounted
...
else
...
fi