BASH:如何将带有变量的命令存储到新变量中?

BASH:如何将带有变量的命令存储到新变量中?,bash,Bash,我想将文件的第I行(存储在变量filename中的文件名)存储到名为line的新变量中,其中: filename=$2 i=$1 因此,假设i=1,filename=names.txt): 如何存储实际文件名和I变量?这是您想要的吗 line=$(sed "${i}q;d" $filename) 比如说, $filename="a.txt" i=1 line=$(sed "${i}q;d" $filename) echo $line aaa a、 例如: aaa bbb 关键是,

我想将文件的第I行(存储在变量filename中的文件名)存储到名为line的新变量中,其中:

filename=$2
i=$1
因此,假设i=1,filename=names.txt):

如何存储实际文件名和I变量?

这是您想要的吗

line=$(sed "${i}q;d" $filename)
比如说,

$filename="a.txt"

i=1

line=$(sed "${i}q;d" $filename)

echo $line 
aaa
a、 例如:

aaa
bbb

关键是,
${i}
需要双引号,否则会出现错误。

这对sed示例也有效吗?ie sed“$iq:d'$filename)”,因为我的$iHmm出现了一个错误。但是这是我想要的输出1q;d必须是单引号?不确定这是否会影响它。ie必须是sed“1q;d”names.txt您有什么环境?您会遇到什么样的错误?
aaa
bbb