如何使用Linux变量作为命令参数

时间:2014-05-07 18:20:28

标签: linux shell variables command

我试图使用bash shell变量作为命令参数,但不能

这是有效的:

sed -n '2p' <file>   

给我文件的第2行

我想做什么:

sed -n '$variable p' <file>

当然,这不起作用。我尝试了所有可能的语法组合而没有成功。如何将变量代入常量?

3 个答案:

答案 0 :(得分:3)

变量在双引号内扩展,而不是在单引号内扩展:

sed -n "$variable p" <file>

答案 1 :(得分:1)

@Barmar对你的问题有正确的答案。

我担心你会把它当作一种迭代文件行的技术。

效率非常低:

for linenum in $(seq $(wc -l < filename)); do
    line=$(sed -n "$linenum p" filename)
    # do something with $line
done

迭代文件行的惯用方法是:

while IFS= read -r line; do
    # do something with "$line"
done < filename

答案 2 :(得分:0)

将变量放在字符串之外:     sed -n $ variable&#39; p&#39;