Jimmy CommSharen73man001.blog.chinaunix.net
n73man001
只是心态,抓住机会。
全部博文(1384)
2014年(3)
2013年(403)
2012年(978)
anderson
zhubingk
JGFNTU
fuliangc
ridgebac
escarp
jizhao
dyli2000
xyfcck
linikesi
cynthia
丸喵喵
浪花小雨
Bsolar
178919
xi_liang
iibull
huenchao
分类: LINUX
2013-04-11 17:19:55
sed使用变量的问题 shell脚本中使用如下sed语句替换一些文本中的变量: #!/bin/sh sed -i 's/ORACLE_HOME_PATH/XXXXX_HOME_PATH/g' a.sql x.sql c.sql v.sql b.sql n.sql 手动将XXXXX_HOME_PATH修改后: sed -i 's/ORACLE_HOME_PATH/\/u01\/app\/oracle\/product\/11.2.0\/dbhome_1/g' a.sql x.sql c.sql v.sql b.sql n.sql 执行成功; 现在想用使用变量: val=$ORACLE_HOME sed -i 's/ORACLE_HOME_PATH/”$val“/g' a.sql x.sql c.sql v.sql b.sql n.sql 执行失败。 同样试过:‘$val’, `$val`, val, 但是都不对,请问应该如何写?
状态:我不在线
注意最外层有单引号,'s/xxxx/xxx/'。 为了达到你的目的,应当使用双引号,这样里面的变量才能够替换。 [php]sed -i "s/ORACLE_HOME_PATH/$val/g" a.sql x.sql c.sql v.sql b.sql n.sq[/php] 又,你的替换字符串中含有 / 符号,所以我建议使用其他符号来分割sed的命令: [php] sed 's@xxxxx@xxxx@' sed -i "s@ORACLE_HOME_PATH@$val@g" a.sql x.sql c.sql v.sql b.sql n.sq [/php] 这样,PATH里面的斜线符就不需要转义了,阅读起来也更舒服了。
上一篇:window 与ubuntu共享文件 hgfs下为空和不用每次挂载hgfs的方法
下一篇:编码音频为aac+
登录 注册