Bash 在字符串中计算命令时出现问题

Bash 在字符串中计算命令时出现问题,bash,Bash,我正在尝试使用将espeak命令绑定到密钥。想法很简单:我按下一个给定的快捷键,espeak为我读取剪贴板上的内容,因为有时候我会有点懒: espeak -v us-mbrola-3 -s 250 "$(xclip -o)" 它在终端上工作得很好,但在.xbindkeysrc内部,它没有: "espeak -v us-mbrola-3 -s 250 "$(xclip -o)"" m:0xc + c:10 问题是它需要一个用于命令的双引号,我需要这些双引号来计算xclip命令。尝试使

我正在尝试使用将espeak命令绑定到密钥。想法很简单:我按下一个给定的快捷键,espeak为我读取剪贴板上的内容,因为有时候我会有点懒:

espeak -v us-mbrola-3 -s 250 "$(xclip -o)"
它在终端上工作得很好,但在
.xbindkeysrc
内部,它没有:

"espeak -v us-mbrola-3 -s 250 "$(xclip -o)""
    m:0xc + c:10 

问题是它需要一个用于命令的双引号,我需要这些双引号来计算xclip命令。尝试使用“”包装,但它不起作用(它只是读取“xclip”而不是求值)。

我已通过使用
eval
使其起作用:

"eval `espeak -v us-mbrola-3 -s 250 "$(xclip -o)"`"
    m:0xc + c:10    

尝试替换
'$(xclip-o)
“$(xclip-o)”
(双引号表示单引号),或将双引号转义为
\“$(xclip-o)\”
。那有用吗?不,我想我必须使用eval.eval它将是:-)看一下espeak的手册,我想你可能已经能够使用
xclip-o | espeak-v us-mbrola-3-s 250
@Aaron,它不起作用。该命令使它说出整个命令本身,将其视为一个文本,而不计算xclip,也不将其输出提供给espeak。