head 命令删除部分行

Head command deletes part of line

我有一个包含以下数据的 csv 文件 (settings.csv)(分隔符是 space):

-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部分删掉了,不知道为什么。如何在不丢失 -n 的情况下创建 $settings

settings 变量已包含您希望存在的 -n 选项。只是 echo 命令将其解释为它自己的(echo 的)选项。

避免此问题的一种方法是引用参数:

echo "$settings"

或者,您可以使用

printf '%s\n' "$settings"