我試圖運行需要在單或雙引號傳遞參數的應用程序:引用變量
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