最近在Kaldi里试图输出N-Best的每一个sentence的文本还有声学模型以及语言模型的分数,但是在使用Shell命令的时候,发现单引号里的变量无法引用
s5=/data3/ots_use_libri_asr001_003/s5
exp=exp/nnet2_online/nnet_a_online
graph=graph_tgsmall
num=1
nbest-to-linear ark:nbest.$num ark,t:$num.ali 'ark,t:|${s5}/utils/int2sym.pl -f 2- ${s5}/${exp}/${graph}/words.txt > ${num}.tra' ark,t:$num.lm ark,t:$num.ac
因为还是Shell弱鸡,所以搜了一下,发现把变量再放入一对单引号里就可以了。于是就改了一下:
nbest-to-linear ark:nbest.$num ark,t:$num.ali 'ark,t:|'${s5}'/utils/int2sym.pl -f 2- '${s5}/${exp}/${graph}'/words.txt > '${num}'.tra' ark,t:$num.lm ark,t:$num.ac
但是如果再仔细看一下,这个背后的到里其实并不是把变量放入一对单引号,而是把变量放在两对单引号中间了,并不是在单引号里面引用,任何是单引号之外引用以后拼接的。