我创建了一个项目的脚本更新,但我在sed面临一个奇怪的问题(使用SLES 11 PL4)。在下面的线时,bash/sed的根本就不是扩大变量,无论我做什么:SED不扩大可变
oldvars=`sed -n '/#### Variables configurables ####/,/#### Variables configurables ####/p' ACCBackup.sh`; sed -i "/#### Variables configurables ####/,/#### Variables configurables ####/c\$oldvars" temp_ACCBackup.sh
也呼应变量正常工作:
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 ####
我试图改变转义“\” ,把变量放在'{}'内,但没有任何帮助......当我尝试新的选项时,这变得越来越we der。系统只会放置变量名称而不是其内容。
有人可以帮我吗?
可能是''\''C'命令导致了问题'后...尝试使用''\\'',而不是...如果你创建了简单的样品输入和显示所需的输出,你可能会得到更好的帮助...我认为你应该使用'r'命令来保证健壮性 – Sundeep
你可以添加输入和实际/期望的输出,以及'oldvars'的内容吗? –
shell正确地用字符串'$ oldvars'替换字符串'\ $ oldvars'。如果你想要变量的值,你不应该逃避'$'。 –