按标签挂载多个卷而不重复命令?

Kas*_*sam 1 bash mount macos

我有这个在线: diskutil mount VOL1 && diskutil mount VOL2 && diskutil mount VOL3

但我不想用内嵌阵列重复命令“diskutil mount”。我试图找到以下风格的解决方案:diskutil mount {VOL1,VOL2,VOL3}

这是如何用 xargs 写的?

ter*_*don 6

根据diskutil 手册页,该mount命令明确设计用于安装单个卷(重点是我的):

挂载 [只读]​​ [-mountPoint 路径] 设备

装入单个卷。如果指定了 readOnly,则文件系统以只读方式挂载,即使卷的底层文件系统和/或设备和/或媒体支持写入;即使是超级用户也可能不会写入;这与挂载 (8) 的 rdonly 选项相同。如果指定了 -mountPoint,则该路径,而不是 /Volumes/VolumeName 的标准路径,将用作卷文件内容的视图;该路径下的目录必须已经存在。

这意味着你不能做简单的diskutil mount {VOL1,VOL2,Vol3}会扩展到diskutil mount VOL1 VOL2 Vol3. 但是,您确实可以xargs按照您的建议进行操作:

printf '%s\n' {VOL1,VOL2,VOL3} | xargs -I{} diskutil mount {}
Run Code Online (Sandbox Code Playgroud)

或者用一个简单的循环:

for i in {VOL1,VOL2,VOL3}; do diskutil mount "$i"; done
Run Code Online (Sandbox Code Playgroud)