我试图运行需要在单或双引号传递参数的应用程序:引用变量
bwa mem -R '@RG\tID:foo\tLB=foo\tPL=illumina\tPU=1234.1\tSM=bar'
...
我想在脚本运行此:
#!/usr/bin/bash
var=foo_bar
first=$(echo $var | cut -d '_' -f 1)
second=$(echo $var | cut -d '_' -f 2)
readgroup="@RG\tID:$first\tLB=HUM\tPL=illumina\tPU=1234.1\tSM=$second"
echo \'$readgroup\'
'@RG\tID:foo\tLB=HUM\tPL=illumina\tPU=1234.1\tSM=bar'
然而,当我用这个作为我的应用程序调用的参数:
var=foo_bar
first=$(echo $var | cut -d '_' -f 1)
second=$(echo $var | cut -d '_' -f 2)
readgroup="@RG\tID:$first\tLB=HUM\tPL=illumina\tPU=1234.1\tSM=$second"
bwa mem -R \'$readgroup\' ...
它解释为
\'@RG\tID:HUM-7\tLB=HUM\tPL=illumina\tPU=1234.1\tSM=HUM-7\'
我在做什么错?
谢谢,但我想使用变量作为另一个程序的输入 - 在这种情况下如何使用'echo -e'? – fugu