0

我有一个使用“SKProgressbar”的应用程序。我希望根据在其中运行的第二个 shell 脚本的进程,让这个进度条增加 10。我不确定这是否可能。我提供了下面的脚本。我是新来的。

    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

对此的任何帮助都会很棒。如果简单的答案是否定的,那么我将继续前进并尝试解决问题。

4

1 回答 1

0

我不熟悉 SKProgressbar 是如何工作的,但是如果脚本结束后它没有重置所有内容,你就不能逆转整个过程吗?与其尝试从 applescript 中运行 bash 脚本,不如制作一个仅将 bar 递增 1 的 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
于 2013-07-22T00:15:02.620 回答