Bash 将sed与数组一起使用

Bash 将sed与数组一起使用,bash,sed,Bash,Sed,有人能告诉我为什么这不起作用吗 Temp=$(sed -n '/"${Arr[$index]}"/,/"${Arr[$((index+1))]}"/p' $Text); 它仍然不起作用。我试着这样做: index=0 while [ "$index" -lt "$((Arr_LEN-1))" ]; do Temp=$(sed -n "/${Arr[$index]}/,/${Arr[$((index+1))]}/p" $Text); let "index++" do

有人能告诉我为什么这不起作用吗

Temp=$(sed -n '/"${Arr[$index]}"/,/"${Arr[$((index+1))]}"/p' $Text);
它仍然不起作用。我试着这样做:

index=0
while [ "$index" -lt "$((Arr_LEN-1))" ]; do
    Temp=$(sed -n "/${Arr[$index]}/,/${Arr[$((index+1))]}/p" $Text);       
    let "index++"
done

因为
sed
脚本在单引号中,这会阻止所有扩展:

将字符括在单引号中会保留引号中每个字符的文字值

不过,将单引号更改为双引号会有所帮助:

将字符括在双引号中会保留引号中所有字符的文字值,但在启用历史扩展时,$、`、\、和除外 启用!。字符$和`在双引号中保留其特殊含义


因为您使用的是单引号。尝试:

Temp=$(sed -n "/${Arr[$index]}/,/${Arr[$((index+1))]}/p" $Text);

预期的输出是什么?它会做什么?你能更具体一点吗?“它不工作”到底是怎么回事?错误消息?我们如何复制它?我有两个问题:首先我使用单引号,第二个$text指向字符串而不是文件,谢谢大家