2013-06-29 42 views
0

我有一个使用“SKProgressbar”的应用程序。我正在寻找这个进度条增加10 基于在其中运行的第二个shell脚本的进程。我不确定这是否可能。我已经提供了下面的脚本。我是新来的。在AppleScript中递增进度条

on open adisk 
    set terminalcommand to "cd " & quoted form of (POSIX path of adisk) & " ; find . -name '.DS_Store' -type f -delete" 
    do shell script terminalcommand 
    set xxx to "cd " & quoted form of (POSIX path of adisk) & " ; find * -type f -exec md5 -r {} \\; > *New_File.md5" 
    set iconPath to ((path to me) as text) & "Contents:Resources:droplet.icns" 

    tell application "SKProgressBar" 
     activate 
     set floating to false --> default is true 
     set position to {500, 550} --> default is {1000, 750}, origin point is bottom left 
     set width to 400.0 --> default is 500.0 
     set title to "CreateMD5" 
     set header to "Processing..." 
     set header alignment to center 
     set footer to "" --> default is empty string 
     set footer alignment to center --> default is left 
     -- image path can be HFS or POSIX path, default is missing value (no image) 
     set image path to iconPath 
     tell progress bar 
      set minimum value to 0.0 --> default is 0.0 
      set maximum value to 100.0 --> default is 100.0 
      set current value to 0.0 --> default is 0.0 
     end tell 
     set show window to true --> default is false 
     tell progress bar 
      set indeterminate to false --> default is true 
      start animation 
      increment by 10.0 
      do shell script xxx 
      stop animation 
     end tell 
     quit 
    end tell 
    activate 
    display dialog "  MD5 Complete!" with icon 1 buttons {"Close", "Open Directory"} cancel button 1 default button 2 
    tell application "Finder" 
     open adisk 
    end tell 
end open 

对此的任何帮助将是伟大的。如果简单的答案是否定的,那么我会继续前进并试图找出一些东西。

+0

我不认为有任何办法知道一个shell脚本的进步,所以我怀疑你能做到这一点。一般而言,您只需在shell脚本之前启动一个不确定的进度条,然后停止它。 – regulus6633

+0

谢谢。经过更多研究和您的回应后,我发现这是唯一可行的选择。这比我现在拥有的更好:) –

回答

0

我不熟悉SKProgressbar是如何工作的,但是如果它在脚本结束后没有重置所有内容,难道你不能逆转整个过程吗?与其试图从applescript内运行bash脚本,为什么不制作一个单独增加栏的applescript,然后让bash脚本在整个代码中调用它?

例如。

#/Users/user_name/Desktop/update_progbar.scpt 
on run() 
    tell application "SKProgressBar" 
     activate 
     tell progress bar 
      increment by 10.0 
     end tell 
    end tell 
end 

然后

#!/bin/bash 
#/Some/Location/my_bash_script.sh 
for x in {1..10}; do 
    #do stuff here 
    osascript /Users/user_name/Desktop/update_progbar.scpt 
done