2017-03-26 25 views
1

我不想逃避下面的单引号:有没有办法将一个带引号的字符串分配给var而不会转义?

a='I'm a $coder.' 

有没有窍门做到这一点?

+2

如果你不想逃避单引号,你会使用双引号,但是你需要转义美元符号。如果您接受转义单引号,您可以执行'a ='我''''$ ma $编码器'。' – user000001

+2

看看http://mywiki.wooledge.org/Quotes – Sundeep

+0

*为什么*不要你想逃避单引号?最简单的解决方案是'a = $'我是$ coder'','a =“我是\ $ coder”'。 *某些*需要被转义,除非您使用多种类型的引号。 – chepner

回答

5

你能避免所有形式的引号和转义使用此文件:

IFS= read -rd '' a << "END" 
I'm a $coder, hear me roar: [email protected]#$%^&*()+"]',/ 
END 
+0

这是非常有用的。 –

1

您可以用双引号(无需转义):

a="'I'm a $coder.'" 
+1

但是'$ coder'会被解释为一个变量。目前尚不清楚这是否是需要的。 – user000001

+0

你可以逃避美元符号(虽然目前还不清楚为什么在转义单引号的时候可以接受;你也不必要地将单引号作为数据加入 – chepner

+0

OP是否想要在单引号中加入单引号并不是很清楚字符串或展开变量“编码器”/希望保留'$ coder'字面意思。所以,说/一个比其他更好似乎是不成熟的。 – usr

2

我建议:

a="I'm a "'$coder.' 
0

两步解决方案:

$ b='$coder' 
$ a="I'm a $b" 

$ echo "$a" 
I'm a $coder 
相关问题