当我的 Git for Windows Bash 命令提示符准备就绪时,如何播放声音?

当我的 Git for Windows Bash 命令提示符准备就绪时,如何播放声音?

我在 Windows 10 上使用适用于 Windows Bash 的 shell Git,并且我希望在命令提示符准备就绪时播放声音。当我的终端窗口完全初始化或命令执行完毕时,此声音反馈应可帮助我返回命令行。

这是我当前的 .bash_profile 行:

export PROMPT_COMMAND='history -a && powershell -c "(New-Object Media.SoundPlayer C:/Windows/Media/chimes.wav).PlaySync();"'
  • 历史命令不相关,来自这里
  • powershell 命令来自这里。它确实基本有效,但它是同步的并且延迟了我的命令提示符的加载。

我怎样才能使其异步?我试过了nohup&但这些在这里不起作用。文档提到方法Play,但这根本不会产生声音。

答案1

要异步运行某些东西(在后台),请将其放在&最后(;否则可能在最后)。powershell -c … &基本上应该可以工作。

在交互式 Bash 中,作业控制默认启用,并powershell -c … &在完成后触发来自 shell 的消息(即使从 运行PROMPT_COMMAND)。在显式子 shell 中运行命令以规避此问题。它将是这样的:

(powershell -c … &)

子shell 本身会同步运行,所以当前 shell 不会把它当成作业。里面的命令会异步运行,但不会成为当前 shell 的作业。

这应该有效:

export PROMPT_COMMAND='history -a && (powershell -c "(New-Object Media.SoundPlayer C:/Windows/Media/chimes.wav).PlaySync();" &)'

相关内容