【问题标题】:Bash Execution Error (-1715): Unable to Mount Volume PathBash 执行错误 (-1715):无法挂载卷路径
【发布时间】:2015-08-15 14:23:21
【问题描述】:

我正在为我正在编写的子例程寻求帮助,该子例程是我们 Mac 机群的备份脚本的一部分。脚本的这个 sn-p 正在检查网络卷是否已安装,如果没有,它将安装它。我遇到了一个问题,我没有正确调用变量。我不确定我是否正确引用了参数。错误信息:

0:29: execution error: Some parameter wasn’t understood. (-1715)

我正在尝试运行的命令:

osascript -e 'mount volume "afp://some.server.com"'

这行得通。但是,在执行命令时,以下脚本不起作用:

#!/bin/bash
#
# SCRIPT TESTING SANDBOX

archive_volume="/Volumes/Users"
volume_path="afp://some.server.com"

# Check and see if the Network share is mounted already
if [[ -d "${archive_volume}" ]]; then 
  echo "The Archive Network share is already mounted."
  exit 1
else
  echo  "\nMounting volume...Please enter your OD credentials."
  # Wait for a bit to mount the drive so we catch the message
  sleep 1
  # Mount the share volume
  osascript -e 'mount volume "${volume_path}"'
fi
exit 0

【问题讨论】:

  • 尝试将osascript 替换为echo。然后你应该看看有什么问题,例如'. 内的变量替换
  • 变量替换不会发生在单引号字符串中。
  • 很棒的调试技巧。不知道为什么我没有更早地使用 echo 进行故障排除。我已经按照建议完成了:echo "${volume_path}"。它似乎打印回变量名some.server.com。这一定是我在命令上传递引号的方式......@Ned Deily
  • 谢谢,@Andrew。变量替换比我目前对 bash 脚本的了解要先进一些。您如何建议我们使用适当的引用来引用变量?
  • osascript -e "mount volume \"${volume_path}\"" 这样的东西应该可以工作。

标签: macos bash shell scripting


【解决方案1】:

osascript -e "mount volume \"${volume_path}\"" 之类的东西应该 工作。 ——安德鲁·梅迪科

请注意,您能否解释一下使用“forward”背后的含义 斜线”\"${some_variable}\"? – Tan

Bash Reference Manual, Quoting:

双引号可以在双引号中通过在它前面加上 一个反斜杠。

在没有反斜杠的命令中(\

osascript -e "mount volume "${volume_path}""

${volume_path} 之前的" 将结束第一个部分字符串mount volume " 之后的${volume_path} 将开始(空)最后一个部分字符串;这些字符串和${volume_path} 的扩展仍将连接到一个参数,例如。 g.
mount volume afp://some.server.com,但" 不会出现在结果参数字符串中,而\" 那些双引号(已删除反斜杠)是参数的一部分:
mount volume "afp://some.server.com"

如果您希望${volume_path} 的扩展被显式引用(以允许空格和其他特殊字符),您也可以编写

  osascript -e "mount volume '$volume_path'"

(发生变量扩展,因为"内部'没有它们的抑制意义)。

【讨论】:

    猜你喜欢
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 2020-12-13
    • 2022-01-20
    • 2020-05-27
    • 1970-01-01
    • 2017-05-17
    相关资源
    最近更新 更多