AppleScript中do shell script执行which命令获取rclone路径报错求助
解决AppleScript中
do shell script "which rclone"报错的问题 问题原因
AppleScript的do shell script执行环境使用的默认PATH变量和终端不同,终端的PATH通常包含/usr/local/bin(rclone所在目录),但AppleScript默认的PATH仅包含/usr/bin:/bin:/usr/sbin:/sbin,导致which rclone找不到命令,返回非零退出状态引发报错。
解决方案
有以下几种可行的解决方式:
直接使用已知的rclone完整路径
既然你已经明确rclone的路径是/usr/local/bin/rclone,无需通过which命令获取,直接赋值即可:set rcloneLOC to "/usr/local/bin/rclone"在shell命令中显式扩展PATH
执行which前先把/usr/local/bin加入到环境变量PATH中,确保能找到rclone:set rcloneLOC to paragraphs of (do shell script "PATH=/usr/local/bin:$PATH which rclone")验证当前shell环境的PATH(可选)
如果想确认AppleScript的默认PATH,可以执行以下命令查看:do shell script "echo $PATH"
内容的提问来源于stack exchange,提问作者DasKraut
相关产品推荐
相关产品推荐

