这是我第一次编写appdescription,我想完成一个特定的用例,在这个用例中,同一脚本的多个调用能够访问和修改特定的全局变量/属性。
以这个伪脚本为例:
property counter : 0
set counter to counter + 1
delay 5
log counter
假设此脚本的第二个实例在第一个实例后1秒启动。我希望它在结束时输出2
,而不是1
我如何才能完成这样的用例?是否可以使用为此目的创建的环境变量?
(如果我能帮忙的话,它不想从文件中读取/写入值)
鉴于您的条件,我建议使用UserDefaults。它们可以通过简单的shell命令访问:
defaults write [domain] [key] [value]
defaults read [domain] [key]
要在appescription中执行shell脚本,您可以使用:
do shell script "my_shell_code"
以下是可以在脚本中使用的计数器的一些函数:
on RegisterCounter()
try
do shell script "defaults read com.himanshu.my_timer_script counter"
on error
do shell script "defaults write com.himanshu.my_timer_script counter 0"
end try
end RegisterCounter
on IncrementCounter()
my RegisterCounter()
do shell script ("defaults write com.himanshu.my_timer_script counter " & (quoted form of (((my GetValueOfCounter()) + 1) as text)))
end IncrementCounter
on GetValueOfCounter()
my RegisterCounter()
return (do shell script "defaults read com.himanshu.my_timer_script counter") as integer
end GetValueOfCounter
on ResetCounter()
try
do shell script "defaults delete com.himanshu.my_timer_script counter"
my RegisterCounter()
end try
end ResetCounter
将这些函数粘贴在脚本的开头或末尾,然后使用调用它们
my FunctionName()