bash - 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"'
解决方案
您没有在消息和标题周围加上引号content
。所以它们被 OSAScript 解释器视为变量名。
function alert {
command='display alert '
content="\"${1}\" message \"${2}\""
concat=$command$content
osascript -e "${concat}"
}
推荐阅读
- generics - 同一个列表中非常相似的类型(继承 vs 区分联合 vs 泛型?)
- django - 对 on_delete.SET() 使用参数或类方法?(如何在删除时更改 ForeignKey 字段)
- ruby-on-rails - 无法使用 Select2 在轨道上创建标签
- unity3d - 获取具有特定着色器的其他游戏对象的位置
- node.js - MongoDB v4.4 根据现有值更新字段的值
- visual-studio-code - VSCode启动时黑屏
- r - 如何找到两个不同数据帧之间的重叠并将重叠写入相应的 bin
- android-studio - 从折线对象中提取方位角的方法
- php - php电子邮件检查器中的正则表达式继续
- java - DynamoDB,带有 boostchicken 库,带有覆盖表名的 GSI 不起作用