我創建了一個項目的腳本更新,但我在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'。如果你想要變量的值,你不應該逃避'$'。 –