首页 > 解决方案 > Osascript 自定义函数无法正确解释命令字符串

问题描述

我有我写的这个功能:

function alert { 
    command='display alert '
    content="${1} message ${2}"
    concat=$command$content
    osascript -e "${concat}"
}

当执行如下:

alert 'Title' 'Message'

我收到错误消息:

25:27: syntax error: A end of script can’t go after this “my”. (-2740)

为什么会这样?

作为参考,此命令完美运行:

osascript -e 'display alert "Title" message "Message"'

标签: bashmacososascript

解决方案


您没有在消息和标题周围加上引号content。所以它们被 OSAScript 解释器视为变量名。

function alert { 
    command='display alert '
    content="\"${1}\" message \"${2}\""
    concat=$command$content
    osascript -e "${concat}"
}

推荐阅读