【发布时间】:2018-07-26 15:19:26
【问题描述】:
我正在使用 osascript 拆分字符串(以这种方式工作,而不是使用 bash),并将结果数组分配给 bash 变量,然后继续我的 bash 脚本。我是这样做的:
tempArrayApplications=$(osascript >/dev/null <<EOF
set oldDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to "/"
set theArray to every text item of "$noSplitString"
set AppleScript's text item delimiters to oldDelimiters
return theArray
EOF)
但是,命令行返回错误,即它转到文件末尾而没有找到匹配的 ')'。但是,当我没有为 osascript 输出分配 bash 变量时,一切正常,所以我知道 AppleScript 部分没有问题。我运行了shellcheck,它没有检测到任何错误,其他解决方案似乎与未闭合的引号或未转义的字符有关,但我似乎没有这个问题。显然这是由于试图将其分配给 bash 变量,但对于我的生活,我不知道我做错了什么。感谢您的帮助。
【问题讨论】:
-
您必须将结束的
)放在单独的一行,否则EOF标记将无法识别。 -
几乎是重复的(
EOF标记后有空格):stackoverflow.com/questions/18660798/… -
另外,shellcheck 告诉我“在结束标记和终止 ')' 之间添加换行符。”:github.com/koalaman/shellcheck/wiki/SC1119
-
尝试将其放在单独的行上,同样的错误@BenjaminW。
-
EOF后面有空格吗?
标签: bash applescript osascript