从 Xcode 运行时,Shell 脚本不会完全执行
Posted
技术标签:
【中文标题】从 Xcode 运行时,Shell 脚本不会完全执行【英文标题】:Shell script won't fully execute when running from Xcode 【发布时间】:2021-04-23 16:26:53 【问题描述】:你好:) 我正在尝试实现一个新的 xcode 行为,它在当前打开的 Xcode 文件上运行 swiftlint 的自动更正。如果我从终端运行脚本,它工作得很好,但是,如果我通过 xcodes 行为执行脚本,所有脚本都会执行,除了 swiftlint 部分(当我尝试将输出打印到文件时,它只输出一个空行)。我确实设置了 chmod u+x 的权限,所以我认为应该没问题。也许有人可以帮我弄清楚是什么原因?我似乎走到了死胡同,找不到有类似问题的人:(
这是我的脚本:
#!/bin/sh
fileName=$(osascript <<END
tell application "Xcode"
set t to name of front window
set o to offset of " — " in t
if o > 0 then set t to text 1 thru (o - 1) of t
return t
end tell
END)
fullPath=$(find . -name "$fileName")
swiftlint autocorrect --path $fullPath
这使用 AppleScript 从 Xcode 中提取当前活动的文件,然后在其上运行 swiftlint。
提前致谢
【问题讨论】:
【参考方案1】:有趣的是,我在发布问题几分钟后找到了解决方案。
问题是 Xcode 无法识别 swiftlint 命令,因此我将其替换为完整路径,它可以正常工作!:)
【讨论】:
以上是关于从 Xcode 运行时,Shell 脚本不会完全执行的主要内容,如果未能解决你的问题,请参考以下文章