0

我在一个混合环境中,并负责通过使用他们已经创建的批处理脚本为他们的 Windows 登录安装 Mac 用户的共享。

我有两个主要问题。

  1. 尝试在 Mac 上的脚本中读取 NETLOGON 共享

  2. 试图将这些脚本中的 net use 命令转换为 mac 可以使用的东西。

我大部分时间都花在将整个 net use 命令转换为可用于 mac 的部分上。

我开始:

IFS='
'

arr=($(grep '\\' /Users/tjguidry/Desktop/tjguidry.bat | tr "[A-Z]" "[a-z]"))

预期的数组是这样的(基于我已经拥有的文件):

net use n: \\domain\dfs1\share1 /persistent:no
net use r: \\domain\dfs1\share2 /persistent:no
rem net use o: \\domain\dfs1\share3 /persistent:no
rem net use p: "\\domain\dfs1\share4" /persistent:no

grep 命令在终端中单独执行它应该做的事情但是当我输出数组时,\domain 中的第一个斜杠被切断,并且对于以字母“a”开头的某些共享(即 \domain\dfs1\admin)它切断输出中的“\ a”。所以我得到:

net use n: \domain\dfs1\share1 /persistent:no
net use r: \domain\dfs1\share2 /persistent:no
rem net use o: \domain\dfs1hare3 /persistent:no
rem net use p: "\domain\dfs1hare4" /persistent:no

无论我如何尝试逃避斜线,我似乎也无法切断“\\”来尝试摆脱字符串的第一个放置。

理想情况下,我想将输出转换为类似 smb://domain/dfs1/share1 的东西,以便 mac 能够安装它。

4

1 回答 1

0

这似乎可以正确处理文件输入:

IFS='
'
arr=($(grep '\\' /Users/tjguidry/Desktop/tjguidry.bat | tr "[A-Z]" "[a-z]" | sed s:\"::g | sed s:\\\\:\/:g | sed 's|/persistent:no||g' | sed 's|net use [a-z]: ||g') )
于 2012-07-03T14:02:46.937 回答