如何在shell脚本中为字符串添加引号

时间:2013-04-29 14:31:42

标签: string shell

我有一个字符串,我需要为子字符串添加引号。我怎么能在shell脚本中做到这一点?

字符串是

Database.Procedure(Frequency,P1,P2,P3)

我必须在频率附近添加单引号。

Database.Procedure('Frequency',P1,P2,P3)

对于所有此类输入,这应该是通用的。请帮忙

由于

2 个答案:

答案 0 :(得分:2)

这样的作品有效:sed "s/Frequency/\'Frequency\'/"

$ echo "Database.Procedure(Frequency,P1,P2,P3)" | sed "s/Frequency/\'Frequency\'/"
Database.Procedure('Frequency',P1,P2,P3)

这是一个用引号改变同一个词Frequency的问题。由于'是保留字,我们必须使用\'转义它。


您的评论:

  

但问题是频率可以是'DAILY','WEEKLY',   'MONTHLY'等我该怎么做?

如果你想使它更通用,那么

var="Your_name"
sed "s/$var/\'$var\'/"

示例:

$ var=Frequency
$ echo "Database.Procedure(Frequency,P1,P2,P3)" | sed "s/$var/\'$var\'/"
Database.Procedure('Frequency',P1,P2,P3)

$ var=Weekly
$ echo "Database.Procedure(Weekly,P1,P2,P3)" | sed "s/$var/\'$var\'/"
Database.Procedure('Weekly',P1,P2,P3

答案 1 :(得分:-1)

尝试使用转义字符

Database.Procedure(\'Frequency\',P1,P2,P3)