什么';It’这是在tcl中生成唤醒警报的好方法

什么';It’这是在tcl中生成唤醒警报的好方法,tcl,Tcl,假设您有一个TCL过程,需要非常长的时间才能完成,并且在TCL过程结束时需要一个叫醒电话,以便您知道何时查看结果 使用tcl代码将自己从深度睡眠中唤醒的好方法是什么。。。比如说,你躺在沙发上,锯木头,你需要tcl程序的震动才能让你在处理完毕后醒来 例如: tcl_proc_that_takes_hours_to_complete ring_alarm_bell_to_inform_user_that_proc_is_done 我想: proc ring_alarm_bell_to_inform

假设您有一个TCL过程,需要非常长的时间才能完成,并且在TCL过程结束时需要一个叫醒电话,以便您知道何时查看结果

使用tcl代码将自己从深度睡眠中唤醒的好方法是什么。。。比如说,你躺在沙发上,锯木头,你需要tcl程序的震动才能让你在处理完毕后醒来

例如:

tcl_proc_that_takes_hours_to_complete
ring_alarm_bell_to_inform_user_that_proc_is_done
我想:

proc ring_alarm_bell_to_inform_user_that_proc_is_done {} 
    puts "\a"
}
但不知何故,我认为这还不够烦人,无法用于此目的……

以下是我的解决方案:

proc wake_up_beep {} {
    set beep_on_end 1

    if {$beep_on_end} {
        puts "WHATEVER YOU WERE DOING IS FINISHED! (ctrl-C to exit)\a"
        while {1} {
            puts -nonewline "\a"
            after 1000
        }
    }
}
以下是我的解决方案:

proc wake_up_beep {} {
    set beep_on_end 1

    if {$beep_on_end} {
        puts "WHATEVER YOU WERE DOING IS FINISHED! (ctrl-C to exit)\a"
        while {1} {
            puts -nonewline "\a"
            after 1000
        }
    }
}

我非常喜欢在完成任务时使用口头通知;一般来说,人们都非常善于注意这一点,而不仅仅是一些随机的哔哔声。在macOS上,我使用以下命令:

proc say {something} {
    # This is a trivial wrapper
    exec say $something
}

say "All done now"
您有,从Tcl的角度来看,其中一些看起来与上面非常相似,并且所有这些都可以使用
exec
调用,例如:

proc say {something} {
    # This is a not-so trivial wrapper, and should be tested before production use
    exec PowerShell -Command [format {Add-Type –AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak('%s');}
}
say "All done now"

您也可以使用零食软件包进行直接播放或合成,但如果您可以使用现有的设备,则需要做大量的工作。

我非常喜欢在任务完成时使用口头通知;一般来说,人们都非常善于注意这一点,而不仅仅是一些随机的哔哔声。在macOS上,我使用以下命令:

proc say {something} {
    # This is a trivial wrapper
    exec say $something
}

say "All done now"
您有,从Tcl的角度来看,其中一些看起来与上面非常相似,并且所有这些都可以使用
exec
调用,例如:

proc say {something} {
    # This is a not-so trivial wrapper, and should be tested before production use
    exec PowerShell -Command [format {Add-Type –AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak('%s');}
}
say "All done now"

您也可以使用Snack软件包进行直接播放或合成,但如果您可以使用现有的工具,那么这将需要大量的工作。

可以使用Tcom或TWAPI软件包访问Windows语音合成引擎,但我不知道如何操作。非常烦人的是:
exec bash-c{while:;说吧“wake up$(++i”);sleep 1;done}
可能可以使用Tcom或TWAPI软件包访问Windows语音合成引擎,但我不知道如何访问。非常烦人的是:
exec bash-c{while:;一定要说“wake up$(++i”);sleep 1;done}