我有这样的代码:
global logFilePath
Job("/Volumes/Work/test.log")
on Job(logFilePath)
-- more code
vlog("text")
-- more code
end Job
on vlog(x)
do shell script "echo \"" & (do shell script "date +' %H:%M:%S '") & x & "\" >> " & quoted form of logFilePath
end vlog我一直从error "The variable logFilePath is not defined." number -2753 from "logFilePath"块中获取on vlog。
为什么?我不是宣布它是全球性的吗?
这是可行的,但不那么优雅:
global logFilePath, logFilePath2
Job("/Volumes/Work/test.log")
on Job(logFilePath)
set logFilePath2 to logFilePath
-- more code
vlog("text")
-- more code
end Job
on vlog(x)
do shell script "echo \"" & (do shell script "date +' %H:%M:%S '") & x & "\" >> " & quoted form of logFilePath2
end vlog发布于 2018-12-20 15:48:14
处理程序中的本地变量logFilePath
on Job(logFilePath)并不是与同名的全局变量相同的对象,因此实际上没有定义它。
要清楚地使用不同的名称
global logFilePath
Job("/Volumes/Work/test.log")
on Job(localPath)
set logFilePath to localPath
-- more code
vlog("text")
-- more code
end Job
on vlog(x)
do shell script "echo \"" & (do shell script "date +' %H:%M:%S '") & x & "\" >> " & quoted form of logFilePath
end vlog或者只使用局部变量
Job("/Volumes/Work/test.log")
on Job(localPath)
-- more code
vlog("text", localPath)
-- more code
end Job
on vlog(x, logFilePath)
do shell script "echo \"" & (do shell script "date +' %H:%M:%S '") & x & "\" >> " & quoted form of logFilePath
end vloghttps://stackoverflow.com/questions/53870508
复制相似问题