问题描述
我有一个包含以下数据的 csv 文件 (settings.csv)(分隔符是一个空格):
-n $(output_name)
--outdir “peaks/$(output_name)”
-g hs
-f AUTO
--qvalue 0.05
--extsize 200
-B
sample input output_name
sample-chip1 sample-input1 sample1
sample-chip2 sample-input2 sample2
当我调用 head -7 settings.csv
时,我得到了预期的输出:
-n $(output_name)
--outdir “peaks/$(output_name)”
-g hs
-f AUTO
--qvalue 0.05
--extsize 200
-B
接下来,我尝试将此输出存储在名为 settings
的变量中,并带有 settings=$(head -7 settings.csv)
,当我 echo $settings
时,我得到了此输出:
$(output_name) --outdir “peaks/$(output_name)” -g hs -f AUTO --qvalue 0.05 --extsize 200 -B
它删除了settings.csv中第一行的-n
部分,不知道为什么。如何在不丢失 $settings
的情况下创建 -n
?
解决方法
settings
变量已经包含您希望在那里出现的 -n
选项。只是 echo
命令将其解释为它自己的(echo
的)选项。
避免此问题的一种方法是引用参数:
echo "$settings"
或者,您可以使用
printf '%s\n' "$settings"