Bash 在后台执行espeak的echo函数的别名

Bash 在后台执行espeak的echo函数的别名,bash,echo,alias,espeak,Bash,Echo,Alias,Espeak,我想用一个函数替换ubuntu bash中的普通echo函数,该函数在每次使用echo时都会额外使用espeak来表示某些内容 我为我的.bashrc找到了一个别名 在我的最终版本中,我将用echo替换ghostTalk 但这将作为输出: ~$ ghostTalk 123 [2] 5685 123 [1] Done espeak -v +whisper -s 80 -p 100 "$(myFun)" 如何避免这种情况,并使正常的回声输出(例如,在后台讲

我想用一个函数替换ubuntu bash中的普通echo函数,该函数在每次使用echo时都会额外使用espeak来表示某些内容

我为我的.bashrc找到了一个别名

在我的最终版本中,我将用echo替换ghostTalk

但这将作为输出:

~$ ghostTalk 123
[2] 5685
123
[1]   Done                    espeak -v +whisper -s 80 -p 100 "$(myFun)"

如何避免这种情况,并使正常的回声输出(例如,在后台讲话时仅为123?

可以使用双分叉抑制背景通知:

ghostTalk() {
  ( espeak -v +whisper -s 80 -p 100 "$(myFun)" & )
  builtin echo "$@"
}
ghostTalk() {
  ( espeak -v +whisper -s 80 -p 100 "$(myFun)" & )
  builtin echo "$@"
}