Bash 在字符串中计算命令时出现问题
我正在尝试使用将espeak命令绑定到密钥。想法很简单:我按下一个给定的快捷键,espeak为我读取剪贴板上的内容,因为有时候我会有点懒: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 -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。