不扩展变量

时间:2017-10-16 15:44:27

标签: bash shell sed

我正在为项目创建脚本更新程序,但我在sed中遇到了一个奇怪的问题(使用SLES 11 PL4)。在下面的行中,无论我做什么,bash / sed都不会扩展变量:

oldvars=`sed -n '/#### Variables configurables ####/,/#### Variables configurables ####/p' ACCBackup.sh`; echo $oldvars                                   #### Variables configurables #### para='/mnt/BackupBBDD' # DIRECTORIO DESTINO compartido=TRUE # VAMOS A MONTAR ALGUN RECURSO COMPARTIDO? 'TRUE' O 'FALSE' compartido_externo='//IP/recurso' # RECURSO EN MAQUINA EXTERNA compartido_usuario='xxxx' # USUARIO PARA EL RECURSO COMPARTIDO compartido_contrasena='yyyy' # CONTRASENA PARA EL RECURSO COMPARTIDO #### Variables configurables ####

同样回显变量也可以正常工作:

{{1}}

我尝试更改转义'\',将变量放在'{}中,但没有一个帮助......当我尝试新的选项时,这变得更加怪异。系统只是简单地放置变量名而不是其内容。

有人能帮助我吗?

2 个答案:

答案 0 :(得分:1)

或者,您可以使用以下内容:

OLDVAR=abc
NEWVAR=xyz

sed -i 's/'"$OLDVAR"'/'"$NEWVAR"'/g' filename

每次都适合我。

答案 1 :(得分:0)

在变量之前添加另一个\

\\$oldvars

当您使用单\时,$被转义,$oldvars成为普通字符串而非变量。