Bash 如何在ed命令参数中插入2个变量?

Bash 如何在ed命令参数中插入2个变量?,bash,shell,while-loop,ed,Bash,Shell,While Loop,Ed,我试图在bash脚本中执行while循环,但当我试图在其参数中插入变量时,我不知道ed(文本编辑器)发生了什么。如您所见,我也在使用循环,但问题似乎在于ed命令中变量的使用 以下是脚本代码(显然是awk和sed程序): #/bin/bash x=1 y=5 SCRIPTDIR=~/bin awk'编号%2==0'测试>输出1 awk-vn=5'1;NR%n==0{print”“}输出1>output1b sed-i的/\r/'输出1b 而[$x-LE50];做 ed-s输出1b $“…”表单不会

我试图在bash脚本中执行while循环,但当我试图在其参数中插入变量时,我不知道ed(文本编辑器)发生了什么。如您所见,我也在使用循环,但问题似乎在于ed命令中变量的使用

以下是脚本代码(显然是awk和sed程序):

#/bin/bash
x=1
y=5
SCRIPTDIR=~/bin
awk'编号%2==0'测试>输出1
awk-vn=5'1;NR%n==0{print”“}输出1>output1b
sed-i的/\r/'输出1b
而[$x-LE50];做
ed-s输出1b
$“…”
表单不会将
\n
转换为换行符,
$“…”
表单不会展开变量

另外,请注意
${x}m$y
中的大括号,否则shell将查找变量
$xm
$y

$“…”
表单不会将
\n
转换为换行符,
$“…”
表单不会展开变量


另外,请注意
${x}m$y
中的大括号,否则shell将查找变量
$xm
$y

非常感谢Glenn,第二个选项对我很好。我应该学习bash手册(引号,特别是字符…),但我现在开始学习。阅读和(适用于此处)部分很好,并且熟悉@glennjackman的顺序。我已经看了5个多小时了,非常感谢!非常感谢你,格伦,第二个选择对我很好。我应该学习bash手册(引号,特别是字符…),但我现在开始学习。阅读和(适用于此处)部分很好,并且熟悉@glennjackman的顺序。我已经看了5个多小时了,非常感谢!
#!/bin/bash

x=1
y=5

SCRIPTDIR=~/bin

awk 'NR % 2==0' test > output1
awk -v n=5 '1; NR % n == 0 {print ""}' output1 > output1b
sed -i 's/\r//' output1b

while [ $x -le 50 ]; do
    ed -s output1b <<< $"$xm$y\nw"
let x=x+5
let y=y+5
done
ed -s output1b <<< $"$xm$y\nw"
ed -s output1b <<ED_COMMANDS
${x}m$y
w
ED_COMMANDS
printf "%s\n" "${x}m$y" "w" | ed -s output1b